From 3ca590f58c2c736d544b5240d4fb2007396721bc Mon Sep 17 00:00:00 2001
From: Bas Couwenberg <sebastic@xs4all.nl>
Date: Fri, 21 Jun 2019 15:38:04 +0200
Subject: [PATCH] New upstream version 3.4.9+dfsg

---
 .ci/travis/scripts/ctest2travis.py            |    2 +-
 .../qgis_resources/test_runner/qgis_setup.sh  |    2 +-
 .travis.yml                                   |    3 +-
 CMakeLists.txt                                |    2 +-
 ChangeLog                                     | 1372 +++++
 debian/changelog                              |   10 +-
 .../default/mIconAutoPlacementSettings.svg    |   10 +-
 linux/org.qgis.qgis.appdata.xml.in            |    1 +
 ms-windows/osgeo4w/package.cmd                |    6 +
 ms-windows/osgeo4w/postinstall-desktop.bat    |    8 +-
 ms-windows/osgeo4w/postinstall-dev.bat        |    8 +-
 ms-windows/osgeo4w/postinstall-grass.bat      |    4 +-
 python/CMakeLists.txt                         |    1 +
 python/PyQt/PyQt5/Qsci.py                     |    2 +-
 python/PyQt/PyQt5/Qt.py                       |    2 +-
 python/PyQt/PyQt5/QtCore.py                   |    2 +-
 python/PyQt/PyQt5/QtGui.py                    |    2 +-
 python/PyQt/PyQt5/QtNetwork.py                |    2 +-
 python/PyQt/PyQt5/QtPrintSupport.py           |    2 +-
 python/PyQt/PyQt5/QtSql.py                    |    2 +-
 python/PyQt/PyQt5/QtSvg.py                    |    2 +-
 python/PyQt/PyQt5/QtTest.py                   |    2 +-
 python/PyQt/PyQt5/QtWebKit.py                 |    2 +-
 python/PyQt/PyQt5/QtWebKitWidgets.py          |    2 +-
 python/PyQt/PyQt5/QtWidgets.py                |    2 +-
 python/PyQt/PyQt5/QtXml.py                    |    2 +-
 python/PyQt/PyQt5/sip.py                      |    2 +-
 python/PyQt/PyQt5/uic/__init__.py             |    2 +-
 python/PyQt/PyQt5/uic/properties.py           |    2 +-
 python/PyQt/PyQt5/uic/pyuic.py                |    2 +-
 python/__init__.py                            |    2 +-
 python/console/__init__.py                    |    2 +-
 .../effects/qgsblureffect.sip.in              |   78 +-
 .../effects/qgsgloweffect.sip.in              |   82 +-
 .../effects/qgsshadoweffect.sip.in            |   80 +-
 .../qgsattributeeditorelement.sip.in          |    2 +-
 .../auto_generated/qgslabelsearchtree.sip.in  |    8 +
 .../core/auto_generated/qgspallabeling.sip.in |   51 +-
 .../auto_generated/qgsrendercontext.sip.in    |   55 +
 .../raster/qgsrasterinterface.sip.in          |   23 +-
 .../symbology/qgsheatmaprenderer.sip.in       |    2 +-
 .../qgsinvertedpolygonrenderer.sip.in         |    2 +-
 .../symbology/qgsnullsymbolrenderer.sip.in    |    2 +-
 .../symbology/qgspointdistancerenderer.sip.in |    2 +-
 .../symbology/qgsrenderer.sip.in              |    9 +-
 .../symbology/qgsrulebasedrenderer.sip.in     |    2 +-
 .../auto_generated/symbology/qgssymbol.sip.in |    2 +-
 python/core/contextmanagers.py                |    2 +-
 python/gui/auto_additions/qgsgui.py           |    2 +
 .../qgsrelationreferencewidget.sip.in         |    2 +-
 .../qgsadvanceddigitizingcanvasitem.sip.in    |    3 +-
 .../qgsadvanceddigitizingdockwidget.sip.in    |    7 +
 python/gui/auto_generated/qgsgui.sip.in       |    8 +-
 .../qgsmaptooladvanceddigitizing.sip.in       |    2 +
 .../qgsnewhttpconnection.sip.in               |    1 +
 .../auto_generated/qgsscalerangewidget.sip.in |   14 +
 python/gui/auto_generated/qgsstatusbar.sip.in |    9 +
 .../qgsinvertedpolygonrendererwidget.sip.in   |    3 +
 python/gui/gui_auto.sip                       |    2 +-
 .../resources/connections-default.xml         |    2 +-
 python/plugins/MetaSearch/util.py             |    4 +-
 .../db_plugins/oracle/sql_dictionary.py       |    2 +-
 .../plugins/db_manager/db_plugins/plugin.py   |   38 +-
 .../db_plugins/postgis/connector_test.py      |    2 +-
 .../db_plugins/postgis/plugin_test.py         |    2 +-
 .../db_plugins/postgis/sql_dictionary.py      |    2 +-
 .../db_plugins/spatialite/sql_dictionary.py   |    2 +-
 .../db_plugins/vlayers/sql_dictionary.py      |    2 +-
 .../db_manager/dlg_field_properties.py        |    2 +-
 .../plugins/db_manager/dlg_import_vector.py   |    1 +
 python/plugins/db_manager/sql_dictionary.py   |    2 +-
 python/plugins/db_manager/sqledit.py          |    2 +-
 python/plugins/processing/ProcessingPlugin.py |    2 +-
 python/plugins/processing/__init__.py         |    2 +-
 .../algs/exampleprovider/ExampleAlgorithm.py  |    2 +-
 .../ExampleAlgorithmProvider.py               |    2 +-
 .../ProcessingExampleProviderPlugin.py        |    2 +-
 .../algs/exampleprovider/__init__.py          |    2 +-
 .../processing/algs/gdal/AssignProjection.py  |    2 +-
 python/plugins/processing/algs/gdal/Buffer.py |    2 +-
 .../algs/gdal/ClipRasterByExtent.py           |    7 +-
 .../processing/algs/gdal/ClipRasterByMask.py  |    7 +-
 .../algs/gdal/ClipVectorByExtent.py           |    2 +-
 .../processing/algs/gdal/ClipVectorByMask.py  |    2 +-
 .../processing/algs/gdal/ColorRelief.py       |    2 +-
 .../plugins/processing/algs/gdal/Dissolve.py  |    2 +-
 .../processing/algs/gdal/ExecuteSql.py        |    2 +-
 .../processing/algs/gdal/GdalAlgorithm.py     |    2 +-
 .../algs/gdal/GdalAlgorithmDialog.py          |    2 +-
 .../algs/gdal/GdalAlgorithmProvider.py        |    2 +-
 .../plugins/processing/algs/gdal/GdalUtils.py |    2 +-
 .../processing/algs/gdal/GridAverage.py       |    2 +-
 .../processing/algs/gdal/GridDataMetrics.py   |    2 +-
 .../algs/gdal/GridInverseDistance.py          |    2 +-
 .../GridInverseDistanceNearestNeighbor.py     |    2 +-
 .../processing/algs/gdal/GridLinear.py        |    2 +-
 .../algs/gdal/GridNearestNeighbor.py          |    2 +-
 .../processing/algs/gdal/OffsetCurve.py       |    2 +-
 .../processing/algs/gdal/OgrToPostGis.py      |    2 +-
 .../processing/algs/gdal/OneSideBuffer.py     |    2 +-
 .../processing/algs/gdal/PointsAlongLines.py  |    2 +-
 python/plugins/processing/algs/gdal/aspect.py |    2 +-
 .../plugins/processing/algs/gdal/buildvrt.py  |   25 +-
 .../plugins/processing/algs/gdal/contour.py   |    2 +-
 .../processing/algs/gdal/extractprojection.py |    2 +-
 .../processing/algs/gdal/fillnodata.py        |    2 +-
 .../processing/algs/gdal/gdal2tiles.py        |    2 +-
 .../plugins/processing/algs/gdal/gdal2xyz.py  |    2 +-
 .../plugins/processing/algs/gdal/gdaladdo.py  |    2 +-
 .../plugins/processing/algs/gdal/gdalcalc.py  |    2 +-
 .../plugins/processing/algs/gdal/gdalinfo.py  |    2 +-
 .../processing/algs/gdal/gdaltindex.py        |    2 +-
 .../plugins/processing/algs/gdal/hillshade.py |    2 +-
 python/plugins/processing/algs/gdal/merge.py  |    2 +-
 .../plugins/processing/algs/gdal/nearblack.py |    2 +-
 .../plugins/processing/algs/gdal/ogr2ogr.py   |    2 +-
 .../algs/gdal/ogr2ogrtabletopostgislist.py    |    2 +-
 .../algs/gdal/ogr2ogrtopostgislist.py         |    2 +-
 .../plugins/processing/algs/gdal/ogrinfo.py   |    2 +-
 .../plugins/processing/algs/gdal/pct2rgb.py   |    2 +-
 .../processing/algs/gdal/polygonize.py        |    2 +-
 .../plugins/processing/algs/gdal/proximity.py |    2 +-
 .../plugins/processing/algs/gdal/rasterize.py |    2 +-
 .../processing/algs/gdal/rasterize_over.py    |    2 +-
 .../processing/algs/gdal/rearrange_bands.py   |    7 +-
 python/plugins/processing/algs/gdal/retile.py |    8 +-
 .../plugins/processing/algs/gdal/rgb2pct.py   |    2 +-
 .../plugins/processing/algs/gdal/roughness.py |    2 +-
 python/plugins/processing/algs/gdal/sieve.py  |    2 +-
 python/plugins/processing/algs/gdal/slope.py  |    2 +-
 python/plugins/processing/algs/gdal/tpi.py    |    2 +-
 .../plugins/processing/algs/gdal/translate.py |    7 +-
 python/plugins/processing/algs/gdal/tri.py    |    2 +-
 .../algs/gdal/ui/RasterOptionsWidget.py       |    2 +-
 python/plugins/processing/algs/gdal/warp.py   |   16 +-
 .../processing/algs/grass7/Grass7Algorithm.py |    2 +-
 .../algs/grass7/Grass7AlgorithmProvider.py    |    2 +-
 .../processing/algs/grass7/Grass7Utils.py     |    2 +-
 .../grass7/description/r.in.lidar.info.txt    |    2 +-
 .../{r.sun.txt => r.sun.incidout.txt}         |   14 +-
 .../grass7/description/r.sun.insoltime.txt    |   30 +
 .../grass7/description/v.net.distance.txt     |    2 +-
 .../plugins/processing/algs/grass7/ext/i.py   |    2 +-
 .../processing/algs/grass7/ext/i_albedo.py    |    2 +-
 .../processing/algs/grass7/ext/i_cca.py       |    2 +-
 .../processing/algs/grass7/ext/i_cluster.py   |    2 +-
 .../algs/grass7/ext/i_colors_enhance.py       |    2 +-
 .../processing/algs/grass7/ext/i_evapo_mh.py  |    2 +-
 .../processing/algs/grass7/ext/i_gensig.py    |    2 +-
 .../processing/algs/grass7/ext/i_gensigset.py |    2 +-
 .../processing/algs/grass7/ext/i_group.py     |    2 +-
 .../algs/grass7/ext/i_in_spotvgt.py           |    2 +-
 .../algs/grass7/ext/i_landsat_acca.py         |    2 +-
 .../algs/grass7/ext/i_landsat_toar.py         |    2 +-
 .../processing/algs/grass7/ext/i_maxlik.py    |    2 +-
 .../processing/algs/grass7/ext/i_oif.py       |    2 +-
 .../algs/grass7/ext/i_pansharpen.py           |    2 +-
 .../processing/algs/grass7/ext/i_pca.py       |    2 +-
 .../processing/algs/grass7/ext/i_segment.py   |    2 +-
 .../processing/algs/grass7/ext/i_smap.py      |    2 +-
 .../processing/algs/grass7/ext/i_tasscap.py   |    2 +-
 .../algs/grass7/ext/r_blend_combine.py        |    2 +-
 .../processing/algs/grass7/ext/r_blend_rgb.py |    2 +-
 .../processing/algs/grass7/ext/r_category.py  |    2 +-
 .../processing/algs/grass7/ext/r_colors.py    |    2 +-
 .../algs/grass7/ext/r_colors_stddev.py        |    2 +-
 .../processing/algs/grass7/ext/r_drain.py     |    2 +-
 .../processing/algs/grass7/ext/r_horizon.py   |    2 +-
 .../processing/algs/grass7/ext/r_li.py        |    2 +-
 .../processing/algs/grass7/ext/r_li_cwed.py   |    2 +-
 .../algs/grass7/ext/r_li_cwed_ascii.py        |    2 +-
 .../algs/grass7/ext/r_li_dominance.py         |    2 +-
 .../algs/grass7/ext/r_li_dominance_ascii.py   |    2 +-
 .../algs/grass7/ext/r_li_edgedensity.py       |    2 +-
 .../algs/grass7/ext/r_li_edgedensity_ascii.py |    2 +-
 .../processing/algs/grass7/ext/r_li_mpa.py    |    2 +-
 .../algs/grass7/ext/r_li_mpa_ascii.py         |    2 +-
 .../processing/algs/grass7/ext/r_li_mps.py    |    2 +-
 .../algs/grass7/ext/r_li_mps_ascii.py         |    2 +-
 .../processing/algs/grass7/ext/r_li_padcv.py  |    2 +-
 .../algs/grass7/ext/r_li_padcv_ascii.py       |    2 +-
 .../algs/grass7/ext/r_li_padrange.py          |    2 +-
 .../algs/grass7/ext/r_li_padrange_ascii.py    |    2 +-
 .../processing/algs/grass7/ext/r_li_padsd.py  |    2 +-
 .../algs/grass7/ext/r_li_padsd_ascii.py       |    2 +-
 .../algs/grass7/ext/r_li_patchdensity.py      |    2 +-
 .../grass7/ext/r_li_patchdensity_ascii.py     |    2 +-
 .../algs/grass7/ext/r_li_patchnum.py          |    2 +-
 .../algs/grass7/ext/r_li_patchnum_ascii.py    |    2 +-
 .../processing/algs/grass7/ext/r_li_pielou.py |    2 +-
 .../algs/grass7/ext/r_li_pielou_ascii.py      |    2 +-
 .../processing/algs/grass7/ext/r_li_renyi.py  |    2 +-
 .../algs/grass7/ext/r_li_renyi_ascii.py       |    2 +-
 .../algs/grass7/ext/r_li_richness.py          |    2 +-
 .../algs/grass7/ext/r_li_richness_ascii.py    |    2 +-
 .../algs/grass7/ext/r_li_shannon.py           |    2 +-
 .../algs/grass7/ext/r_li_shannon_ascii.py     |    2 +-
 .../processing/algs/grass7/ext/r_li_shape.py  |    2 +-
 .../algs/grass7/ext/r_li_shape_ascii.py       |    2 +-
 .../algs/grass7/ext/r_li_simpson.py           |    2 +-
 .../algs/grass7/ext/r_li_simpson_ascii.py     |    2 +-
 .../processing/algs/grass7/ext/r_mapcalc.py   |    2 +-
 .../processing/algs/grass7/ext/r_mask_rast.py |    2 +-
 .../processing/algs/grass7/ext/r_mask_vect.py |    2 +-
 .../processing/algs/grass7/ext/r_null.py      |    2 +-
 .../processing/algs/grass7/ext/r_proj.py      |    2 +-
 .../processing/algs/grass7/ext/r_reclass.py   |    2 +-
 .../algs/grass7/ext/r_resamp_filter.py        |    2 +-
 .../processing/algs/grass7/ext/r_rgb.py       |    2 +-
 .../algs/grass7/ext/r_series_interp.py        |    2 +-
 .../processing/algs/grass7/ext/r_shade.py     |    2 +-
 .../algs/grass7/ext/r_statistics.py           |    2 +-
 .../algs/grass7/ext/r_stats_quantile_rast.py  |    2 +-
 .../algs/grass7/ext/r_what_color.py           |    2 +-
 .../processing/algs/grass7/ext/v_distance.py  |    2 +-
 .../processing/algs/grass7/ext/v_edit.py      |    2 +-
 .../processing/algs/grass7/ext/v_extrude.py   |    2 +-
 .../algs/grass7/ext/v_in_geonames.py          |    2 +-
 .../processing/algs/grass7/ext/v_net.py       |    2 +-
 .../processing/algs/grass7/ext/v_net_alloc.py |    2 +-
 .../algs/grass7/ext/v_net_allpairs.py         |    2 +-
 .../algs/grass7/ext/v_net_bridge.py           |    2 +-
 .../algs/grass7/ext/v_net_centrality.py       |    2 +-
 .../algs/grass7/ext/v_net_components.py       |    2 +-
 .../algs/grass7/ext/v_net_connectivity.py     |    2 +-
 .../algs/grass7/ext/v_net_distance.py         |    2 +-
 .../processing/algs/grass7/ext/v_net_flow.py  |    2 +-
 .../processing/algs/grass7/ext/v_net_iso.py   |    2 +-
 .../processing/algs/grass7/ext/v_net_path.py  |    2 +-
 .../algs/grass7/ext/v_net_salesman.py         |    2 +-
 .../algs/grass7/ext/v_net_spanningtree.py     |    2 +-
 .../algs/grass7/ext/v_net_steiner.py          |    2 +-
 .../algs/grass7/ext/v_net_visibility.py       |    2 +-
 .../processing/algs/grass7/ext/v_proj.py      |    2 +-
 .../algs/grass7/ext/v_rast_stats.py           |    2 +-
 .../processing/algs/grass7/ext/v_rectify.py   |    2 +-
 .../processing/algs/grass7/ext/v_sample.py    |    2 +-
 .../processing/algs/grass7/ext/v_to_3d.py     |    2 +-
 .../algs/grass7/ext/v_vect_stats.py           |    2 +-
 .../processing/algs/grass7/ext/v_voronoi.py   |    2 +-
 .../processing/algs/grass7/ext/v_what_rast.py |    2 +-
 .../processing/algs/grass7/ext/v_what_vect.py |    2 +-
 .../plugins/processing/algs/help/__init__.py  |    2 +-
 .../processing/algs/qgis/AddTableField.py     |    2 +-
 .../plugins/processing/algs/qgis/Aggregate.py |    2 +-
 python/plugins/processing/algs/qgis/Aspect.py |    2 +-
 .../plugins/processing/algs/qgis/BarPlot.py   |    2 +-
 .../processing/algs/qgis/BasicStatistics.py   |    2 +-
 .../plugins/processing/algs/qgis/BoxPlot.py   |    2 +-
 python/plugins/processing/algs/qgis/Buffer.py |    2 +-
 .../processing/algs/qgis/CheckValidity.py     |    2 +-
 .../processing/algs/qgis/ConcaveHull.py       |    2 +-
 .../algs/qgis/CreateAttributeIndex.py         |    2 +-
 .../algs/qgis/CreateConstantRaster.py         |    2 +-
 .../processing/algs/qgis/Datasources2Vrt.py   |    2 +-
 .../processing/algs/qgis/DefineProjection.py  |    2 +-
 .../plugins/processing/algs/qgis/Delaunay.py  |    2 +-
 .../processing/algs/qgis/DeleteColumn.py      |    2 +-
 .../algs/qgis/DeleteDuplicateGeometries.py    |    2 +-
 .../processing/algs/qgis/DensifyGeometries.py |    2 +-
 .../algs/qgis/DensifyGeometriesInterval.py    |    2 +-
 .../algs/qgis/EliminateSelection.py           |    2 +-
 .../processing/algs/qgis/ExecuteSQL.py        |    2 +-
 .../algs/qgis/ExportGeometryInfo.py           |    2 +-
 .../processing/algs/qgis/ExtentFromLayer.py   |    2 +-
 .../algs/qgis/ExtractSpecificVertices.py      |    2 +-
 .../processing/algs/qgis/FieldPyculator.py    |    2 +-
 .../processing/algs/qgis/FieldsCalculator.py  |    2 +-
 .../processing/algs/qgis/FieldsMapper.py      |    2 +-
 .../processing/algs/qgis/FindProjection.py    |    2 +-
 .../algs/qgis/GeometryByExpression.py         |    2 +-
 .../processing/algs/qgis/GeometryConvert.py   |    2 +-
 python/plugins/processing/algs/qgis/Grid.py   |    2 +-
 .../plugins/processing/algs/qgis/Heatmap.py   |    2 +-
 .../plugins/processing/algs/qgis/Hillshade.py |    2 +-
 .../processing/algs/qgis/HubDistanceLines.py  |    2 +-
 .../processing/algs/qgis/HubDistancePoints.py |    2 +-
 .../processing/algs/qgis/HypsometricCurves.py |    2 +-
 .../processing/algs/qgis/IdwInterpolation.py  |    2 +-
 .../processing/algs/qgis/ImportIntoPostGIS.py |    2 +-
 .../algs/qgis/ImportIntoSpatialite.py         |    2 +-
 .../algs/qgis/KNearestConcaveHull.py          |    2 +-
 .../processing/algs/qgis/KeepNBiggestParts.py |    2 +-
 .../processing/algs/qgis/LinesToPolygons.py   |    2 +-
 .../processing/algs/qgis/MeanAndStdDevPlot.py |    2 +-
 .../algs/qgis/MinimumBoundingGeometry.py      |    2 +-
 .../algs/qgis/NearestNeighbourAnalysis.py     |    2 +-
 .../processing/algs/qgis/Orthogonalize.py     |    2 +-
 .../processing/algs/qgis/PointDistance.py     |    2 +-
 .../algs/qgis/PointsAlongGeometry.py          |    2 +-
 .../algs/qgis/PointsDisplacement.py           |    2 +-
 .../processing/algs/qgis/PointsFromLines.py   |    2 +-
 .../algs/qgis/PointsFromPolygons.py           |    2 +-
 .../processing/algs/qgis/PointsInPolygon.py   |    2 +-
 .../algs/qgis/PointsLayerFromTable.py         |    2 +-
 .../processing/algs/qgis/PointsToPaths.py     |    2 +-
 .../plugins/processing/algs/qgis/PolarPlot.py |    2 +-
 .../algs/qgis/PoleOfInaccessibility.py        |    2 +-
 .../processing/algs/qgis/Polygonize.py        |    2 +-
 .../processing/algs/qgis/PolygonsToLines.py   |    2 +-
 .../algs/qgis/PostGISExecuteAndLoadSQL.py     |    2 +-
 .../processing/algs/qgis/PostGISExecuteSQL.py |    2 +-
 .../processing/algs/qgis/QgisAlgorithm.py     |    2 +-
 .../algs/qgis/QgisAlgorithmProvider.py        |    2 +-
 .../processing/algs/qgis/RandomExtract.py     |    2 +-
 .../algs/qgis/RandomExtractWithinSubsets.py   |    2 +-
 .../algs/qgis/RandomPointsAlongLines.py       |    2 +-
 .../algs/qgis/RandomPointsExtent.py           |    2 +-
 .../processing/algs/qgis/RandomPointsLayer.py |    2 +-
 .../algs/qgis/RandomPointsPolygons.py         |    2 +-
 .../processing/algs/qgis/RandomSelection.py   |    2 +-
 .../algs/qgis/RandomSelectionWithinSubsets.py |    2 +-
 .../processing/algs/qgis/RasterCalculator.py  |    2 +-
 .../algs/qgis/RasterLayerHistogram.py         |    2 +-
 .../algs/qgis/RasterLayerStatistics.py        |    2 +-
 .../processing/algs/qgis/RasterSampling.py    |    2 +-
 .../plugins/processing/algs/qgis/Rasterize.py |    2 +-
 .../algs/qgis/RectanglesOvalsDiamondsFixed.py |    2 +-
 .../qgis/RectanglesOvalsDiamondsVariable.py   |    2 +-
 .../processing/algs/qgis/RegularPoints.py     |    2 +-
 python/plugins/processing/algs/qgis/Relief.py |    2 +-
 .../processing/algs/qgis/Ruggedness.py        |    2 +-
 .../processing/algs/qgis/SelectByAttribute.py |   12 +-
 .../algs/qgis/SelectByExpression.py           |    4 +-
 .../algs/qgis/ServiceAreaFromLayer.py         |    2 +-
 .../algs/qgis/ServiceAreaFromPoint.py         |    2 +-
 .../plugins/processing/algs/qgis/SetMValue.py |    2 +-
 .../processing/algs/qgis/SetRasterStyle.py    |    2 +-
 .../processing/algs/qgis/SetVectorStyle.py    |    2 +-
 .../plugins/processing/algs/qgis/SetZValue.py |    2 +-
 .../processing/algs/qgis/SingleSidedBuffer.py |    2 +-
 python/plugins/processing/algs/qgis/Slope.py  |    2 +-
 .../processing/algs/qgis/SnapGeometries.py    |    2 +-
 .../processing/algs/qgis/SpatialIndex.py      |    2 +-
 .../processing/algs/qgis/SpatialJoin.py       |    2 +-
 .../algs/qgis/SpatialJoinSummary.py           |    2 +-
 .../algs/qgis/SpatialiteExecuteSQL.py         |    2 +-
 .../algs/qgis/StatisticsByCategories.py       |    2 +-
 .../plugins/processing/algs/qgis/SumLines.py  |    2 +-
 .../processing/algs/qgis/TextToFloat.py       |    2 +-
 .../processing/algs/qgis/TinInterpolation.py  |    2 +-
 .../processing/algs/qgis/TopoColors.py        |    2 +-
 .../processing/algs/qgis/TruncateTable.py     |    2 +-
 .../processing/algs/qgis/UniqueValues.py      |    2 +-
 .../algs/qgis/VariableDistanceBuffer.py       |    2 +-
 .../algs/qgis/VectorLayerHistogram.py         |    2 +-
 .../algs/qgis/VectorLayerScatterplot.py       |    2 +-
 .../algs/qgis/VectorLayerScatterplot3D.py     |    2 +-
 .../processing/algs/qgis/VectorSplit.py       |    2 +-
 .../processing/algs/qgis/VoronoiPolygons.py   |    2 +-
 .../processing/algs/qgis/ZonalStatistics.py   |    2 +-
 .../algs/qgis/ui/AggregatesPanel.py           |    2 +-
 .../algs/qgis/ui/ExecuteSQLWidget.py          |    2 +-
 .../algs/qgis/ui/FieldsCalculatorDialog.py    |    2 +-
 .../algs/qgis/ui/FieldsMappingPanel.py        |    2 +-
 .../algs/qgis/ui/InterpolationWidgets.py      |    2 +-
 .../algs/qgis/ui/RasterCalculatorWidgets.py   |    4 +-
 .../algs/qgis/ui/ReliefColorsWidget.py        |    2 +-
 .../plugins/processing/algs/qgis/voronoi.py   |    2 +-
 .../processing/algs/saga/SagaAlgorithm.py     |    4 +-
 .../processing/algs/saga/SagaAlgorithmBase.py |    2 +-
 .../algs/saga/SagaAlgorithmProvider.py        |    2 +-
 .../algs/saga/SagaDescriptionCreator.py       |    2 +-
 .../processing/algs/saga/SagaNameDecorator.py |    2 +-
 .../processing/algs/saga/SagaParameters.py    |    2 +-
 .../plugins/processing/algs/saga/SagaUtils.py |    2 +-
 .../processing/algs/saga/SplitRGBBands.py     |    7 +-
 .../saga/description/UserDefinedFilter.txt    |    2 +-
 .../algs/saga/ext/supervisedclassification.py |    2 +-
 .../processing/algs/saga/versioncheck.py      |    2 +-
 python/plugins/processing/core/Processing.py  |    2 +-
 .../processing/core/ProcessingConfig.py       |    2 +-
 .../plugins/processing/core/ProcessingLog.py  |    2 +-
 .../processing/core/ProcessingResults.py      |    2 +-
 .../processing/core/defaultproviders.py       |    2 +-
 python/plugins/processing/core/outputs.py     |    2 +-
 python/plugins/processing/core/parameters.py  |    2 +-
 .../plugins/processing/gui/AlgorithmDialog.py |    2 +-
 .../processing/gui/AlgorithmDialogBase.py     |    2 +-
 .../processing/gui/AlgorithmExecutor.py       |    2 +-
 .../processing/gui/AlgorithmLocatorFilter.py  |    2 +-
 .../plugins/processing/gui/AutofillDialog.py  |    2 +-
 .../processing/gui/BatchAlgorithmDialog.py    |    2 +-
 .../gui/BatchInputSelectionPanel.py           |    2 +-
 .../gui/BatchOutputSelectionPanel.py          |    2 +-
 python/plugins/processing/gui/BatchPanel.py   |    2 +-
 .../plugins/processing/gui/CheckboxesPanel.py |    2 +-
 python/plugins/processing/gui/ConfigDialog.py |    2 +-
 .../plugins/processing/gui/ContextAction.py   |    2 +-
 .../gui/DestinationSelectionPanel.py          |    2 +-
 .../processing/gui/DirectorySelectorDialog.py |    2 +-
 .../gui/EditRenderingStylesDialog.py          |    2 +-
 .../processing/gui/ExtentSelectionPanel.py    |    2 +-
 .../processing/gui/FileSelectionPanel.py      |    2 +-
 .../processing/gui/FixedTableDialog.py        |    2 +-
 .../plugins/processing/gui/FixedTablePanel.py |    2 +-
 python/plugins/processing/gui/Help2Html.py    |    2 +-
 .../processing/gui/HelpEditionDialog.py       |    2 +-
 .../plugins/processing/gui/HistoryDialog.py   |    2 +-
 .../processing/gui/ListMultiselectWidget.py   |    2 +-
 .../processing/gui/MessageBarProgress.py      |    2 +-
 .../plugins/processing/gui/MessageDialog.py   |    2 +-
 .../processing/gui/MultipleFileInputDialog.py |    2 +-
 .../processing/gui/MultipleInputDialog.py     |    2 +-
 .../processing/gui/MultipleInputPanel.py      |    2 +-
 .../processing/gui/NumberInputPanel.py        |    2 +-
 .../processing/gui/ParameterGuiUtils.py       |    2 +-
 .../plugins/processing/gui/ParametersPanel.py |    2 +-
 python/plugins/processing/gui/PointMapTool.py |    2 +-
 .../processing/gui/PointSelectionPanel.py     |    2 +-
 .../processing/gui/PostgisTableSelector.py    |    2 +-
 .../plugins/processing/gui/Postprocessing.py  |    2 +-
 .../processing/gui/ProcessingToolbox.py       |    2 +-
 python/plugins/processing/gui/RangePanel.py   |    2 +-
 .../processing/gui/RectangleMapTool.py        |    2 +-
 .../processing/gui/RenderingStyleFilePanel.py |    2 +-
 .../plugins/processing/gui/RenderingStyles.py |    2 +-
 python/plugins/processing/gui/ResultsDock.py  |    2 +-
 python/plugins/processing/gui/TestTools.py    |    2 +-
 .../plugins/processing/gui/ToolboxAction.py   |    2 +-
 python/plugins/processing/gui/__init__.py     |    2 +-
 .../processing/gui/enummodelerwidget.py       |    2 +-
 .../processing/gui/matrixmodelerwidget.py     |    2 +-
 python/plugins/processing/gui/menus.py        |    2 +-
 python/plugins/processing/gui/wrappers.py     |    2 +-
 .../modeler/AddModelFromFileAction.py         |    2 +-
 .../modeler/CreateNewModelAction.py           |    2 +-
 .../processing/modeler/DeleteModelAction.py   |    2 +-
 .../processing/modeler/EditModelAction.py     |    2 +-
 .../modeler/ModelerAlgorithmProvider.py       |    2 +-
 .../processing/modeler/ModelerDialog.py       |    2 +-
 .../processing/modeler/ModelerGraphicItem.py  |    2 +-
 .../ModelerParameterDefinitionDialog.py       |    2 +-
 .../modeler/ModelerParametersDialog.py        |    2 +-
 .../processing/modeler/ModelerScene.py        |    2 +-
 .../processing/modeler/ModelerUtils.py        |    2 +-
 .../processing/modeler/MultilineTextPanel.py  |    2 +-
 .../modeler/OpenModelFromFileAction.py        |    2 +-
 .../processing/modeler/ProjectProvider.py     |    2 +-
 .../DeletePreconfiguredAlgorithmAction.py     |    2 +-
 .../NewPreconfiguredAlgorithmAction.py        |    2 +-
 .../preconfigured/PreconfiguredAlgorithm.py   |    2 +-
 .../PreconfiguredAlgorithmDialog.py           |    2 +-
 .../PreconfiguredAlgorithmProvider.py         |    2 +-
 .../script/AddScriptFromFileAction.py         |    2 +-
 .../script/AddScriptFromTemplateAction.py     |    2 +-
 .../script/CreateNewScriptAction.py           |    2 +-
 .../processing/script/DeleteScriptAction.py   |    2 +-
 .../processing/script/EditScriptAction.py     |    2 +-
 .../script/OpenScriptFromFileAction.py        |    2 +-
 .../script/ScriptAlgorithmProvider.py         |    2 +-
 .../plugins/processing/script/ScriptEdit.py   |    2 +-
 .../processing/script/ScriptEditorDialog.py   |    2 +-
 .../plugins/processing/script/ScriptUtils.py  |    2 +-
 .../tests/CheckValidityAlgorithm.py           |    2 +-
 python/plugins/processing/tests/GuiTest.py    |    2 +-
 .../plugins/processing/tests/ModelerTest.py   |    2 +-
 .../processing/tests/ProjectProvider.py       |    2 +-
 python/plugins/processing/tests/TestData.py   |    2 +-
 python/plugins/processing/tests/ToolsTest.py  |    2 +-
 .../grass7_algorithms_raster_tests.yaml       |   68 +-
 python/plugins/processing/tools/__init__.py   |    2 +-
 .../plugins/processing/tools/dataobjects.py   |    2 +-
 python/plugins/processing/tools/general.py    |    2 +-
 python/plugins/processing/tools/postgis.py    |    2 +-
 python/plugins/processing/tools/raster.py     |    2 +-
 python/plugins/processing/tools/spatialite.py |    2 +-
 python/plugins/processing/tools/system.py     |    2 +-
 python/plugins/processing/tools/vector.py     |    2 +-
 python/pyplugin_installer/__init__.py         |    2 +-
 .../qgsstorebadlayerinfo.sip.in               |   51 +
 python/server/server_auto.sip                 |    1 +
 python/user.py                                |    2 +-
 python/utils.py                               |    2 +-
 resources/CMakeLists.txt                      |    6 +
 resources/compdcs.csv                         |  159 +
 resources/datum_shift.csv                     |  837 +++
 resources/gcs.csv                             |  514 ++
 resources/geoccs.csv                          |  182 +
 resources/pcs.csv                             | 4977 +++++++++++++++++
 resources/qgis_global_settings.ini            |   18 +
 resources/vertcs.csv                          |  205 +
 rpm/qgis.spec.template                        |    6 +
 scripts/generate_test_mask_image.py           |    2 +-
 scripts/mkuidefaults.py                       |    2 +-
 scripts/parse_dash_results.py                 |    2 +-
 scripts/pyuic-wrapper.py                      |    2 +-
 scripts/qgis_srs.sh                           |    6 +-
 scripts/sip_include.sh                        |   10 +-
 scripts/spell_check/check_spelling.sh         |    8 +-
 scripts/spell_check/spell_test.sh             |    6 +-
 scripts/spell_check/test.sh                   |    2 +-
 scripts/verify-indentation.sh                 |    4 +-
 scripts/widgets_tree.py                       |    2 +-
 .../qgsalgorithmextractbyattribute.cpp        |    6 +-
 .../processing/qgsalgorithmpackage.cpp        |   14 +
 .../qgsalgorithmsaveselectedfeatures.cpp      |    2 +-
 src/analysis/raster/qgsrastercalclexer.ll     |    5 +
 src/analysis/raster/qgsrastercalculator.cpp   |    9 +-
 src/app/CMakeLists.txt                        |    1 +
 src/app/layout/qgslayoutatlaswidget.cpp       |    2 +-
 src/app/layout/qgslayoutdesignerdialog.cpp    |    6 +-
 src/app/layout/qgslayoutlabelwidget.cpp       |    1 +
 src/app/layout/qgslayoutmanagerdialog.cpp     |   33 +-
 src/app/layout/qgslayoutmanagerdialog.h       |    6 +-
 src/app/main.cpp                              |   25 +-
 src/app/qgisapp.cpp                           |  172 +-
 src/app/qgisapp.h                             |   23 +-
 src/app/qgsattributetabledialog.cpp           |   19 +-
 src/app/qgsattributetabledialog.h             |    4 -
 src/app/qgsfirstrundialog.cpp                 |    5 +
 src/app/qgsfirstrundialog.h                   |    6 +
 src/app/qgslabelinggui.cpp                    |    1 +
 src/app/qgsmaptoollabel.cpp                   |   11 +-
 src/app/qgsmaptoolpinlabels.cpp               |   11 +-
 src/app/qgsmaptoolreshape.cpp                 |   10 +-
 src/app/qgsoptions.cpp                        |   38 +-
 src/app/qgsoptions.h                          |    3 -
 src/app/qgsrulebasedlabelingwidget.cpp        |    4 +-
 src/app/vertextool/qgsvertextool.cpp          |   16 +-
 src/app/vertextool/qgsvertextool.h            |    4 +-
 src/auth/basic/qgsauthbasicmethod.cpp         |   26 +-
 src/auth/oauth2/qgsauthoauth2method.cpp       |   89 +-
 src/core/auth/qgsauthmanager.cpp              |   46 +-
 src/core/auth/qgsauthmanager.h                |    4 +
 src/core/dxf/qgsdxfexport.cpp                 |  105 +-
 src/core/effects/qgsblureffect.cpp            |   23 +-
 src/core/effects/qgsblureffect.h              |   60 +-
 src/core/effects/qgsgloweffect.cpp            |   27 +-
 src/core/effects/qgsgloweffect.h              |   62 +-
 src/core/effects/qgsshadoweffect.cpp          |   29 +-
 src/core/effects/qgsshadoweffect.h            |   60 +-
 src/core/expression/qgsexpressionnodeimpl.cpp |    2 +
 src/core/geometry/qgsgeometry.cpp             |   12 +-
 src/core/geometry/qgsgeometryutils.cpp        |   20 +-
 src/core/layout/qgslayoutexporter.cpp         |   12 +-
 .../layout/qgslayoutitemattributetable.cpp    |   68 +-
 src/core/layout/qgslayoutitemlabel.cpp        |    6 +-
 src/core/layout/qgslayoutmultiframe.cpp       |   29 +-
 src/core/pal/feature.cpp                      |  161 +-
 src/core/pal/feature.h                        |    7 +-
 src/core/pal/geomfunction.cpp                 |    2 +-
 src/core/pal/layer.cpp                        |   58 +-
 src/core/pal/layer.h                          |   18 +-
 src/core/qgsapplication.cpp                   |   15 +-
 src/core/qgsattributeeditorelement.h          |    2 +-
 src/core/qgscolorramp.cpp                     |    2 +-
 src/core/qgscoordinatereferencesystem.cpp     |   12 +-
 src/core/qgscoordinatetransform.cpp           |   20 +-
 src/core/qgslabelfeature.h                    |   16 +
 src/core/qgslabelingengine.cpp                |   47 +-
 src/core/qgslabelingengine.h                  |   21 +-
 src/core/qgslabelsearchtree.cpp               |   61 +-
 src/core/qgslabelsearchtree.h                 |   13 +-
 src/core/qgsmaplayer.cpp                      |   28 +-
 src/core/qgsmaptopixelgeometrysimplifier.cpp  |    8 +-
 src/core/qgsnetworkaccessmanager.cpp          |    5 +-
 src/core/qgsofflineediting.cpp                |   10 +
 src/core/qgsogrutils.cpp                      |  103 +-
 src/core/qgsogrutils.h                        |    7 +
 src/core/qgspallabeling.cpp                   |  113 +-
 src/core/qgspallabeling.h                     |   91 +-
 src/core/qgspointlocator.cpp                  |   20 +-
 src/core/qgsrendercontext.h                   |   55 +
 src/core/qgssettings.h                        |    2 +-
 src/core/qgsspatialindex.cpp                  |    4 +
 src/core/qgsstringutils.cpp                   |    2 +-
 src/core/qgsvectorfilewriter.cpp              |   44 +
 src/core/qgsvectorlayerdiagramprovider.cpp    |    1 -
 src/core/qgsvectorlayerlabelprovider.cpp      |    1 -
 src/core/raster/qgsrasterdataprovider.cpp     |   31 +-
 src/core/raster/qgsrasterdataprovider.h       |    8 +-
 src/core/raster/qgsrasterinterface.h          |   24 +-
 src/core/raster/qgsrasterlayerrenderer.cpp    |    6 +
 src/core/symbology/qgsarrowsymbollayer.cpp    |    6 +
 src/core/symbology/qgsfillsymbollayer.cpp     |   27 +-
 src/core/symbology/qgsfillsymbollayer.h       |    6 +-
 src/core/symbology/qgsheatmaprenderer.cpp     |    8 +-
 src/core/symbology/qgsheatmaprenderer.h       |    2 +-
 .../symbology/qgsinvertedpolygonrenderer.cpp  |   24 +-
 .../symbology/qgsinvertedpolygonrenderer.h    |    2 +-
 src/core/symbology/qgslinesymbollayer.cpp     |    9 +
 src/core/symbology/qgsnullsymbolrenderer.h    |    2 +-
 .../symbology/qgspointdistancerenderer.cpp    |    7 +-
 src/core/symbology/qgspointdistancerenderer.h |    2 +-
 src/core/symbology/qgsrenderer.h              |    9 +-
 src/core/symbology/qgsrulebasedrenderer.cpp   |   35 +-
 src/core/symbology/qgsrulebasedrenderer.h     |    2 +-
 src/core/symbology/qgssymbol.cpp              |   23 +-
 src/core/symbology/qgssymbol.h                |    2 +-
 src/crashhandler/qgscrashdialog.cpp           |    5 +-
 src/crashhandler/qgscrashreport.cpp           |    1 -
 src/gui/CMakeLists.txt                        |    3 +-
 src/gui/attributetable/qgsdualview.h          |    2 -
 src/gui/editorwidgets/qgsdatetimeedit.cpp     |    9 +-
 .../qgsrelationreferencewidget.cpp            |    4 +-
 .../qgsrelationreferencewidget.h              |    2 +-
 src/gui/effects/qgspainteffectwidget.cpp      |   65 +-
 src/gui/effects/qgspainteffectwidget.h        |    9 +-
 .../layertree/qgslayertreemapcanvasbridge.cpp |   13 +-
 src/gui/layout/qgslayoutview.cpp              |    2 +-
 src/gui/qgsadvanceddigitizingcanvasitem.cpp   |   12 -
 src/gui/qgsadvanceddigitizingcanvasitem.h     |    8 +-
 src/gui/qgsadvanceddigitizingdockwidget.cpp   |   16 +
 src/gui/qgsadvanceddigitizingdockwidget.h     |   12 +-
 src/gui/qgsattributedialog.h                  |    1 -
 src/gui/qgsexpressionbuilderwidget.cpp        |    3 +-
 src/gui/qgsexternalresourcewidget.cpp         |    2 +-
 src/gui/qgsfilewidget.cpp                     |    2 +
 src/gui/qgsgui.h                              |   14 +-
 src/gui/qgsmaptip.cpp                         |    9 +-
 src/gui/qgsmaptool.cpp                        |    3 +-
 src/gui/qgsmaptooladvanceddigitizing.h        |    4 +-
 src/gui/qgsmaptoolcapture.cpp                 |    3 +
 src/gui/qgsmaptoolidentify.h                  |    1 -
 src/gui/qgsnewhttpconnection.cpp              |   24 +-
 src/gui/qgsnewhttpconnection.h                |    6 +
 src/gui/qgsprojectionselectionwidget.cpp      |    9 +-
 src/gui/qgsrasterlayersaveasdialog.cpp        |   21 +-
 src/gui/qgsrasterlayersaveasdialog.h          |    2 +
 src/gui/qgsscalerangewidget.h                 |   10 +
 src/gui/qgssnapindicator.cpp                  |   25 +-
 src/gui/qgssnapindicator.h                    |    3 +-
 src/gui/qgsstatusbar.cpp                      |   12 +
 src/gui/qgsstatusbar.h                        |   12 +
 src/gui/qgstextformatwidget.cpp               |    4 +-
 .../qgsinvertedpolygonrendererwidget.cpp      |    9 +
 .../qgsinvertedpolygonrendererwidget.h        |    2 +
 .../symbology/qgsrulebasedrendererwidget.cpp  |    4 +-
 .../evisdatabaseconnectiongui.cpp             |    2 +-
 .../qgsgeometrycheckerdialog.cpp              |    2 +-
 .../georeferencer/qgsgeorefplugingui.cpp      |    2 +-
 src/plugins/grass/qgis_grass_test.py          |    2 +-
 .../grass/scripts/db.connect-login.pg.py      |    2 +-
 .../grass/scripts/qgis.v.kernel.rast.py       |    2 +-
 src/plugins/grass/scripts/qgis.v.upgrade.py   |    2 +-
 src/plugins/grass/scripts/r.external.all.py   |    2 +-
 src/plugins/grass/scripts/v.out.ogr.pg.py     |    2 +-
 .../offline_editing_plugin_gui.cpp            |    2 +-
 src/plugins/topology/rulesDialog.cpp          |    2 +-
 src/providers/arcgisrest/CMakeLists.txt       |    2 +
 src/providers/arcgisrest/qgsafsshareddata.cpp |   62 +-
 src/providers/arcgisrest/qgsamsprovider.cpp   |    8 +-
 src/providers/arcgisrest/qgsamsprovider.h     |    2 +-
 .../arcgisrest/qgsarcgisrestutils.cpp         |   19 +-
 src/providers/gdal/qgsgdalprovider.cpp        |   49 +-
 src/providers/gdal/qgsgdalprovider.h          |    4 +-
 .../grass/qgsgrassrasterprovider.cpp          |   13 +-
 src/providers/grass/qgsgrassrasterprovider.h  |    4 +-
 src/providers/ogr/qgsogrdataitems.cpp         |    4 +-
 src/providers/ogr/qgsogrprovider.cpp          |   23 +-
 src/providers/ogr/qgsogrprovider.h            |    2 +-
 src/providers/postgres/qgspostgresconn.cpp    |    4 +-
 src/providers/postgres/qgspostgresconn.h      |    4 +-
 .../postgres/qgspostgresdataitems.cpp         |    8 +-
 .../postgres/qgspostgresprovider.cpp          |   53 +-
 src/providers/wcs/qgswcsprovider.cpp          |   16 +-
 src/providers/wcs/qgswcsprovider.h            |    4 +-
 src/providers/wfs/qgswfscapabilities.cpp      |   35 +
 src/providers/wfs/qgswfscapabilities.h        |    2 +
 .../wfs/qgswfsdescribefeaturetype.cpp         |   22 +-
 src/providers/wfs/qgswfsdescribefeaturetype.h |    5 +-
 src/providers/wfs/qgswfsfeatureiterator.cpp   |   51 +-
 src/providers/wfs/qgswfsfeatureiterator.h     |    3 +-
 src/providers/wfs/qgswfsnewconnection.cpp     |   10 +-
 src/providers/wfs/qgswfsprovider.cpp          |   73 +-
 src/providers/wfs/qgswfsrequest.cpp           |    5 -
 src/providers/wfs/qgswfsshareddata.cpp        |   78 +-
 src/providers/wfs/qgswfsshareddata.h          |    8 +-
 src/providers/wms/qgswmsprovider.cpp          |   29 +-
 src/providers/wms/qgswmsprovider.h            |    5 +-
 src/server/CMakeLists.txt                     |    1 +
 src/server/qgsconfigcache.cpp                 |   11 +-
 src/server/qgsstorebadlayerinfo.cpp           |   36 +
 src/server/qgsstorebadlayerinfo.h             |   47 +
 .../wfs/qgswfsdescribefeaturetype.cpp         |    2 +-
 .../services/wms/qgswmsgetcapabilities.cpp    |   28 +-
 src/server/services/wms/qgswmsgetcontext.cpp  |    4 +-
 src/server/services/wms/qgswmsparameters.cpp  |   14 +-
 src/ui/effects/widget_blur.ui                 |   40 +-
 src/ui/effects/widget_glow.ui                 |   31 +-
 src/ui/effects/widget_shadoweffect.ui         |   31 +-
 src/ui/qgsfirstrundialog.ui                   |  126 +-
 src/ui/qgslabelingwidget.ui                   |    8 +-
 src/ui/qgsoptionsbase.ui                      |  133 +-
 src/ui/qgsrasterlayersaveasdialogbase.ui      |   39 +-
 src/ui/qgstextformatwidgetbase.ui             |   11 +
 tests/README.md                               |    8 +-
 tests/code_layout/acceptable_missing_doc.py   |    4 +-
 tests/code_layout/test_doxygen_layout.sh      |    6 +-
 tests/code_layout/test_qgsdoccoverage.py      |    2 +-
 tests/code_layout/test_qgssipcoverage.py      |    2 +-
 tests/src/analysis/testqgsprocessing.cpp      |    4 +-
 .../src/analysis/testqgsrastercalculator.cpp  |   14 +
 tests/src/app/testqgsmaptoolreshape.cpp       |  171 +-
 tests/src/core/CMakeLists.txt                 |    1 +
 .../core/testqgscoordinatereferencesystem.cpp |   18 +-
 tests/src/core/testqgscoordinatetransform.cpp |   10 +-
 tests/src/core/testqgsdistancearea.cpp        |    2 +-
 tests/src/core/testqgsdxfexport.cpp           |   37 +
 tests/src/core/testqgsgeometry.cpp            |   36 +-
 tests/src/core/testqgsgeometryutils.cpp       |   74 +
 .../core/testqgsinvertedpolygonrenderer.cpp   |   24 +-
 tests/src/core/testqgslabelingengine.cpp      |  637 +++
 tests/src/core/testqgslayouttable.cpp         |   93 +-
 tests/src/core/testqgsofflineediting.cpp      |   56 +-
 tests/src/core/testqgsogcutils.cpp            |   57 +-
 tests/src/core/testqgspainteffect.cpp         |   12 +-
 tests/src/core/testqgsstringutils.cpp         |    2 +
 tests/src/core/testqgsvectorfilewriter.cpp    |  125 +
 tests/src/gui/CMakeLists.txt                  |    1 +
 .../gui/testqgsrasterlayersaveasdialog.cpp    |  145 +
 .../gui/testqgsrelationreferencewidget.cpp    |   34 +
 tests/src/providers/CMakeLists.txt            |    1 +
 tests/src/python/CMakeLists.txt               |    3 +-
 tests/src/python/featuresourcetestbase.py     |    2 +-
 tests/src/python/offlineditingtestbase.py     |    2 +-
 tests/src/python/provider_python.py           |    2 +-
 tests/src/python/providertestbase.py          |    2 +-
 tests/src/python/qgis_interface.py            |    2 +-
 tests/src/python/qgis_local_server.py         |    2 +-
 tests/src/python/qgis_wrapped_server.py       |    2 +-
 .../src/python/test_authmanager_oauth2_ows.py |    2 +-
 tests/src/python/test_authmanager_ogr.py      |    2 +-
 .../python/test_authmanager_ogr_postgres.py   |    2 +-
 .../python/test_authmanager_password_ows.py   |    2 +-
 .../test_authmanager_password_postgres.py     |    2 +-
 tests/src/python/test_authmanager_pki_ows.py  |    2 +-
 .../python/test_authmanager_pki_postgres.py   |    2 +-
 tests/src/python/test_authmanager_proxy.py    |    2 +-
 tests/src/python/test_authsettingswidget.py   |    2 +-
 tests/src/python/test_console.py              |    2 +-
 tests/src/python/test_core_additions.py       |    2 +-
 tests/src/python/test_db_manager_gpkg.py      |    2 +-
 tests/src/python/test_db_manager_postgis.py   |    2 +-
 .../src/python/test_db_manager_spatialite.py  |    2 +-
 tests/src/python/test_layer_dependencies.py   |    2 +-
 tests/src/python/test_offline_editing_wfs.py  |    2 +-
 .../python/test_project_storage_postgres.py   |    2 +-
 tests/src/python/test_provider_afs.py         |   14 +-
 tests/src/python/test_provider_db2.py         |    2 +-
 tests/src/python/test_provider_gdal.py        |    2 +-
 tests/src/python/test_provider_memory.py      |    2 +-
 tests/src/python/test_provider_mssql.py       |    2 +-
 tests/src/python/test_provider_ogr.py         |    2 +-
 tests/src/python/test_provider_ogr_gpkg.py    |    2 +-
 tests/src/python/test_provider_ogr_sqlite.py  |    2 +-
 tests/src/python/test_provider_oracle.py      |    2 +-
 tests/src/python/test_provider_postgres.py    |    2 +-
 tests/src/python/test_provider_python.py      |    4 +-
 tests/src/python/test_provider_shapefile.py   |   16 +-
 tests/src/python/test_provider_spatialite.py  |    2 +-
 tests/src/python/test_provider_tabfile.py     |    2 +-
 tests/src/python/test_provider_virtual.py     |    2 +-
 tests/src/python/test_provider_wfs.py         |  256 +-
 tests/src/python/test_provider_wfs_gui.py     |    8 +-
 tests/src/python/test_python_repr.py          |    2 +-
 tests/src/python/test_qgis_local_server.py    |    2 +-
 tests/src/python/test_qgsactionmanager.py     |    2 +-
 .../src/python/test_qgsaggregatecalculator.py |    2 +-
 tests/src/python/test_qgsannotation.py        |    2 +-
 tests/src/python/test_qgsapplication.py       |    2 +-
 tests/src/python/test_qgsappstartup.py        |    2 +-
 tests/src/python/test_qgsarrowsymbollayer.py  |    2 +-
 tests/src/python/test_qgsattributeform.py     |  120 +
 .../test_qgsattributeformeditorwidget.py      |    2 +-
 .../python/test_qgsattributetableconfig.py    |    2 +-
 .../src/python/test_qgsattributetablemodel.py |    2 +-
 tests/src/python/test_qgsauthsystem.py        |    2 +-
 tests/src/python/test_qgsauxiliarystorage.py  |    2 +-
 tests/src/python/test_qgsbearingutils.py      |    2 +-
 tests/src/python/test_qgsblendmodes.py        |    2 +-
 tests/src/python/test_qgsbox3d.py             |    2 +-
 .../test_qgscategorizedsymbolrenderer.py      |    2 +-
 tests/src/python/test_qgscheckablecombobox.py |    2 +-
 tests/src/python/test_qgscolorbutton.py       |    2 +-
 ...ectorcolorramp.py => test_qgscolorramp.py} |   53 +-
 tests/src/python/test_qgscolorscheme.py       |    2 +-
 .../src/python/test_qgscolorschemeregistry.py |    2 +-
 tests/src/python/test_qgsconditionalstyle.py  |    2 +-
 .../src/python/test_qgscoordinateformatter.py |    2 +-
 .../src/python/test_qgscoordinatetransform.py |    2 +-
 .../test_qgscoordinatetransformcontext.py     |    2 +-
 .../test_qgsdataitemproviderregistry.py       |    2 +-
 tests/src/python/test_qgsdatetimeedit.py      |    2 +-
 .../test_qgsdatetimestatisticalsummary.py     |    2 +-
 tests/src/python/test_qgsdefaultvalue.py      |    2 +-
 .../python/test_qgsdelimitedtextprovider.py   |    2 +-
 .../test_qgsdelimitedtextprovider_wanted.py   |    2 +-
 tests/src/python/test_qgsdistancearea.py      |    2 +-
 tests/src/python/test_qgseditformconfig.py    |    2 +-
 tests/src/python/test_qgseditwidgets.py       |    2 +-
 tests/src/python/test_qgsellipsoidutils.py    |    2 +-
 .../python/test_qgsencodingselectiondialog.py |    2 +-
 tests/src/python/test_qgsexpression.py        |    2 +-
 .../python/test_qgsexpressionbuilderwidget.py |    2 +-
 .../src/python/test_qgsexpressionlineedit.py  |    2 +-
 tests/src/python/test_qgsextentgroupbox.py    |    2 +-
 tests/src/python/test_qgsfeature.py           |    2 +-
 tests/src/python/test_qgsfeatureiterator.py   |    2 +-
 tests/src/python/test_qgsfeaturesink.py       |    2 +-
 tests/src/python/test_qgsfeaturesource.py     |    2 +-
 tests/src/python/test_qgsfeedback.py          |    2 +-
 tests/src/python/test_qgsfieldcombobox.py     |    2 +-
 tests/src/python/test_qgsfieldformatters.py   |    2 +-
 tests/src/python/test_qgsfieldmodel.py        |    2 +-
 tests/src/python/test_qgsfields.py            |    2 +-
 tests/src/python/test_qgsfieldvalidator.py    |    2 +-
 tests/src/python/test_qgsfiledownloader.py    |    2 +-
 tests/src/python/test_qgsfileutils.py         |    2 +-
 tests/src/python/test_qgsfillsymbollayers.py  |    2 +-
 tests/src/python/test_qgsfilterlineedit.py    |    2 +-
 tests/src/python/test_qgsfloatingwidget.py    |    2 +-
 tests/src/python/test_qgsfontbutton.py        |    2 +-
 tests/src/python/test_qgsfontutils.py         |    2 +-
 tests/src/python/test_qgsgeometry.py          |   27 +-
 .../test_qgsgeometry_avoid_intersections.py   |    2 +-
 .../test_qgsgeometrygeneratorsymbollayer.py   |    2 +-
 tests/src/python/test_qgsgeometryvalidator.py |    2 +-
 tests/src/python/test_qgsgeonodeconnection.py |    2 +-
 .../python/test_qgsgraduatedsymbolrenderer.py |    2 +-
 tests/src/python/test_qgshighlight.py         |    2 +-
 tests/src/python/test_qgsinterval.py          |    2 +-
 tests/src/python/test_qgsissue7244.py         |    2 +-
 tests/src/python/test_qgsjsonutils.py         |    2 +-
 tests/src/python/test_qgslayerdefinition.py   |    2 +-
 tests/src/python/test_qgslayermetadata.py     |    2 +-
 tests/src/python/test_qgslayertree.py         |    2 +-
 .../test_qgslayertreemapcanvasbridge.py       |    2 +-
 tests/src/python/test_qgslayertreeview.py     |    2 +-
 tests/src/python/test_qgslayout.py            |    2 +-
 tests/src/python/test_qgslayoutaligner.py     |    2 +-
 tests/src/python/test_qgslayoutatlas.py       |    2 +-
 tests/src/python/test_qgslayoutexporter.py    |    2 +-
 tests/src/python/test_qgslayoutframe.py       |    2 +-
 .../src/python/test_qgslayoutgridsettings.py  |    2 +-
 tests/src/python/test_qgslayoutguides.py      |    2 +-
 tests/src/python/test_qgslayouthtml.py        |    2 +-
 tests/src/python/test_qgslayoutitem.py        |    2 +-
 .../test_qgslayoutitempropertiesdialog.py     |    2 +-
 tests/src/python/test_qgslayoutlabel.py       |    2 +-
 tests/src/python/test_qgslayoutlegend.py      |    2 +-
 tests/src/python/test_qgslayoutmanager.py     |    2 +-
 tests/src/python/test_qgslayoutmap.py         |    2 +-
 tests/src/python/test_qgslayoutmapgrid.py     |    2 +-
 tests/src/python/test_qgslayoutpage.py        |    2 +-
 .../python/test_qgslayoutpagecollection.py    |    2 +-
 tests/src/python/test_qgslayoutpicture.py     |    2 +-
 tests/src/python/test_qgslayoutpolygon.py     |    2 +-
 tests/src/python/test_qgslayoutpolyline.py    |    2 +-
 tests/src/python/test_qgslayoutscalebar.py    |    2 +-
 tests/src/python/test_qgslayoutshape.py       |    2 +-
 tests/src/python/test_qgslayoutsnapper.py     |    2 +-
 .../src/python/test_qgslayoutunitscombobox.py |    2 +-
 tests/src/python/test_qgslayoutview.py        |    2 +-
 tests/src/python/test_qgslinesegment.py       |    2 +-
 tests/src/python/test_qgslinesymbollayers.py  |    2 +-
 tests/src/python/test_qgslocator.py           |    2 +-
 tests/src/python/test_qgslogger.py            |    2 +-
 tests/src/python/test_qgsmapcanvas.py         |    2 +-
 .../python/test_qgsmapcanvasannotationitem.py |    2 +-
 tests/src/python/test_qgsmaplayer.py          |   26 +-
 tests/src/python/test_qgsmaplayeraction.py    |    2 +-
 tests/src/python/test_qgsmaplayermodel.py     |    2 +-
 .../src/python/test_qgsmaplayerproxymodel.py  |    2 +-
 tests/src/python/test_qgsmaplayerstore.py     |    2 +-
 tests/src/python/test_qgsmaprenderer.py       |    2 +-
 tests/src/python/test_qgsmaprenderercache.py  |    2 +-
 .../src/python/test_qgsmapthemecollection.py  |    2 +-
 tests/src/python/test_qgsmapunitscale.py      |    2 +-
 tests/src/python/test_qgsmargins.py           |    2 +-
 .../python/test_qgsmarkerlinesymbollayer.py   |    2 +-
 tests/src/python/test_qgsmessagelog.py        |    2 +-
 tests/src/python/test_qgsmetadatabase.py      |    2 +-
 tests/src/python/test_qgsmetadatawidget.py    |    2 +-
 .../src/python/test_qgsmultiedittoolbutton.py |    2 +-
 .../python/test_qgsnetworkcontentfetcher.py   |    2 +-
 .../test_qgsnetworkcontentfetcherregistry.py  |    2 +-
 .../test_qgsnetworkcontentfetchertask.py      |    2 +-
 .../test_qgsnewgeopackagelayerdialog.py       |    2 +-
 tests/src/python/test_qgsnoapplication.py     |    2 +-
 .../src/python/test_qgsnullsymbolrenderer.py  |    2 +-
 tests/src/python/test_qgsopacitywidget.py     |    2 +-
 tests/src/python/test_qgsowsconnection.py     |    2 +-
 tests/src/python/test_qgspallabeling_base.py  |    2 +-
 .../src/python/test_qgspallabeling_canvas.py  |    2 +-
 .../src/python/test_qgspallabeling_layout.py  |    2 +-
 .../python/test_qgspallabeling_placement.py   |    2 +-
 .../src/python/test_qgspallabeling_server.py  |    2 +-
 tests/src/python/test_qgspallabeling_tests.py |    2 +-
 tests/src/python/test_qgspanelwidget.py       |    2 +-
 tests/src/python/test_qgspanelwidgetstack.py  |    2 +-
 tests/src/python/test_qgspoint.py             |    2 +-
 .../python/test_qgspointclusterrenderer.py    |    2 +-
 .../test_qgspointdisplacementrenderer.py      |    2 +-
 tests/src/python/test_qgspostgresdomain.py    |    2 +-
 .../src/python/test_qgspostgrestransaction.py |    2 +-
 .../src/python/test_qgsprocessingalgrunner.py |    2 +-
 tests/src/python/test_qgsprocessinginplace.py |    2 +-
 .../test_qgsprocessingrecentalgorithmslog.py  |    2 +-
 tests/src/python/test_qgsproject.py           |    2 +-
 .../test_qgsprojectionselectionwidgets.py     |    2 +-
 tests/src/python/test_qgsprojectmetadata.py   |    2 +-
 tests/src/python/test_qgsrange.py             |    2 +-
 tests/src/python/test_qgsrangewidgets.py      |    2 +-
 .../src/python/test_qgsrasterbandcombobox.py  |    2 +-
 .../python/test_qgsrastercolorrampshader.py   |    2 +-
 tests/src/python/test_qgsrasterfilewriter.py  |    2 +-
 .../python/test_qgsrasterfilewritertask.py    |    2 +-
 tests/src/python/test_qgsrasterlayer.py       |    2 +-
 tests/src/python/test_qgsrasterrange.py       |    2 +-
 .../test_qgsrasterrerderer_createsld.py       |    2 +-
 tests/src/python/test_qgsratiolockbutton.py   |    2 +-
 tests/src/python/test_qgsreadwritecontext.py  |    2 +-
 tests/src/python/test_qgsrectangle.py         |    2 +-
 .../src/python/test_qgsreferencedgeometry.py  |    2 +-
 tests/src/python/test_qgsrelation.py          |    2 +-
 .../src/python/test_qgsrelationeditwidget.py  |    2 +-
 tests/src/python/test_qgsrelationmanager.py   |    2 +-
 tests/src/python/test_qgsrendercontext.py     |    2 +-
 tests/src/python/test_qgsrenderer.py          |    2 +-
 tests/src/python/test_qgsreport.py            |    2 +-
 tests/src/python/test_qgsrulebasedrenderer.py |    2 +-
 .../python/test_qgssearchwidgettoolbutton.py  |    2 +-
 .../src/python/test_qgssearchwidgetwrapper.py |    2 +-
 tests/src/python/test_qgsserver.py            |    2 +-
 .../python/test_qgsserver_accesscontrol.py    |    2 +-
 .../test_qgsserver_accesscontrol_wcs.py       |    2 +-
 .../test_qgsserver_accesscontrol_wfs.py       |    2 +-
 ...sserver_accesscontrol_wfs_transactional.py |    2 +-
 .../test_qgsserver_accesscontrol_wms.py       |    2 +-
 ...rver_accesscontrol_wms_getlegendgraphic.py |    2 +-
 .../src/python/test_qgsserver_cachemanager.py |    2 +-
 .../python/test_qgsserver_locale_override.py  |    2 +-
 tests/src/python/test_qgsserver_modules.py    |    2 +-
 tests/src/python/test_qgsserver_plugins.py    |    2 +-
 .../src/python/test_qgsserver_projectutils.py |    2 +-
 tests/src/python/test_qgsserver_request.py    |    2 +-
 tests/src/python/test_qgsserver_response.py   |    2 +-
 tests/src/python/test_qgsserver_security.py   |    2 +-
 tests/src/python/test_qgsserver_services.py   |    2 +-
 tests/src/python/test_qgsserver_settings.py   |    2 +-
 tests/src/python/test_qgsserver_wfs.py        |    9 +-
 tests/src/python/test_qgsserver_wfst.py       |    2 +-
 tests/src/python/test_qgsserver_wms.py        |   10 +-
 .../test_qgsserver_wms_getfeatureinfo.py      |    2 +-
 .../test_qgsserver_wms_getlegendgraphic.py    |    2 +-
 tests/src/python/test_qgsserver_wms_getmap.py |   45 +-
 .../src/python/test_qgsserver_wms_getprint.py |  170 +-
 tests/src/python/test_qgsserver_wmts.py       |    2 +-
 tests/src/python/test_qgsserverlogger.py      |    2 +-
 tests/src/python/test_qgssettings.py          |    2 +-
 tests/src/python/test_qgsshortcutsmanager.py  |    2 +-
 .../python/test_qgssimplelinesymbollayer.py   |    2 +-
 .../python/test_qgssinglesymbolrenderer.py    |    2 +-
 .../python/test_qgssourceselectprovider.py    |    2 +-
 tests/src/python/test_qgsspatialindex.py      |    2 +-
 tests/src/python/test_qgssqlstatement.py      |    2 +-
 .../test_qgsstringstatisticalsummary.py       |    2 +-
 tests/src/python/test_qgsstringutils.py       |    2 +-
 tests/src/python/test_qgsstylemodel.py        |    2 +-
 tests/src/python/test_qgssvgcache.py          |    2 +-
 tests/src/python/test_qgssvgsourcelineedit.py |    2 +-
 tests/src/python/test_qgssymbol.py            |    2 +-
 tests/src/python/test_qgssymbolbutton.py      |    2 +-
 .../test_qgssymbolexpressionvariables.py      |    2 +-
 tests/src/python/test_qgssymbollayer.py       |    2 +-
 .../python/test_qgssymbollayer_createsld.py   |    2 +-
 .../src/python/test_qgssymbollayer_readsld.py |    2 +-
 tests/src/python/test_qgssymbollayerutils.py  |    2 +-
 tests/src/python/test_qgstaskmanager.py       |    2 +-
 tests/src/python/test_qgstextformatwidget.py  |   10 +-
 tests/src/python/test_qgstextrenderer.py      |    2 +-
 tests/src/python/test_qgstreewidgetitem.py    |    2 +-
 tests/src/python/test_qgsunittypes.py         |    2 +-
 tests/src/python/test_qgsvectorfilewriter.py  |    2 +-
 .../python/test_qgsvectorfilewritertask.py    |    2 +-
 tests/src/python/test_qgsvectorlayer.py       |    2 +-
 tests/src/python/test_qgsvectorlayercache.py  |    2 +-
 .../python/test_qgsvectorlayereditbuffer.py   |    2 +-
 ...est_qgsvectorlayerselectedfeaturesource.py |    2 +-
 tests/src/python/test_qgsvectorlayertools.py  |    2 +-
 tests/src/python/test_qgsvectorlayerutils.py  |    2 +-
 .../python/test_qgsvirtuallayerdefinition.py  |    2 +-
 tests/src/python/test_qgsvirtuallayertask.py  |    2 +-
 tests/src/python/test_qgsxmlutils.py          |    2 +-
 tests/src/python/test_qgsziputils.py          |    2 +-
 tests/src/python/test_qgszonalstatistics.py   |    2 +-
 tests/src/python/test_syntactic_sugar.py      |    2 +-
 tests/src/python/utilities.py                 |    2 +-
 .../expected_painteffect_blur.png             |  Bin 6302 -> 6008 bytes
 .../expected_painteffect_composer.png         |  Bin 48589 -> 50665 bytes
 .../expected_painteffect_dropshadow.png       |  Bin 4203 -> 4975 bytes
 .../expected_painteffect_outerglow.png        |  Bin 1773 -> 2471 bytes
 .../expected_painteffect_stack.png            |  Bin 6052 -> 5417 bytes
 .../sp_label_curved_zero_width_char.png       |  Bin 8497 -> 8529 bytes
 .../expected_label_adjacent_parts.png         |  Bin 0 -> 2115 bytes
 .../expected_label_curved_label_above_1.png   |  Bin 0 -> 6701 bytes
 .../expected_label_curved_label_below_1.png   |  Bin 0 -> 6612 bytes
 ...cted_label_curved_label_small_segments.png |  Bin 0 -> 2860 bytes
 ...xpected_label_curved_negative_distance.png |  Bin 0 -> 2950 bytes
 ...cted_label_multipart_touching_branches.png |  Bin 0 -> 2939 bytes
 ...xpected_label_multipart_touching_lines.png |  Bin 0 -> 2761 bytes
 .../expected_label_rotate_with_reproject.png  |  Bin 0 -> 2110 bytes
 .../expected_parallel_prefer_above.png        |  Bin 0 -> 2175 bytes
 .../WMS_GetMap_Filter6/WMS_GetMap_Filter6.png |  Bin 0 -> 2831 bytes
 .../WMS_GetPrint_Basic_Pdf.png                |  Bin 0 -> 262127 bytes
 .../WMS_GetPrint_Basic_Pdf_mask.png           |  Bin 0 -> 53038 bytes
 .../WMS_GetPrint_Selection_Pdf.png            |  Bin 0 -> 301478 bytes
 .../WMS_GetPrint_Selection_Pdf_mask.png       |  Bin 0 -> 396418 bytes
 .../expected_inverted_polys_curved.png        |  Bin
 .../expected_inverted_polys_curved.png        |  Bin 641536 -> 0 bytes
 ...expected_inverted_polys_graduated_mask.png |  Bin 48333 -> 48719 bytes
 .../expected_inverted_polys_preprocess.png    |  Bin
 ...xpected_inverted_polys_preprocess_mask.png |  Bin 0 -> 21576 bytes
 .../expected_inverted_polys_preprocess.png    |  Bin 25224 -> 0 bytes
 .../expected_inverted_polys_projection.png    |  Bin
 ...xpected_inverted_polys_projection_mask.png |  Bin 0 -> 18581 bytes
 .../expected_inverted_polys_projection.png    |  Bin 21778 -> 0 bytes
 .../expected_inverted_polys_projection2.png   |  Bin
 ...pected_inverted_polys_projection2_mask.png |  Bin 0 -> 17782 bytes
 .../expected_inverted_polys_projection2.png   |  Bin 20737 -> 0 bytes
 .../expected_inverted_polys_rotation.png      |  Bin 0 -> 32877 bytes
 .../expected_inverted_polys_single.png        |  Bin
 .../expected_inverted_polys_single_mask.png   |  Bin 0 -> 22492 bytes
 .../expected_inverted_polys_single.png        |  Bin 26407 -> 0 bytes
 tests/testdata/layout_atlas_table.qgs         |  539 ++
 tests/testdata/multipatch.shp                 |  Bin 0 -> 376 bytes
 tests/testdata/multipatch.shx                 |  Bin 0 -> 108 bytes
 tests/testdata/points_gpkg.gpkg               |  Bin 139264 -> 139264 bytes
 .../fcgi/scripts/spawn_fcgi_mac.sh            |    8 +-
 .../lighttpd/scripts/lighttpd_debian.sh       |    4 +-
 .../lighttpd/scripts/lighttpd_mac.sh          |    6 +-
 .../qgis_server/bug_gh29767_double_vfield.qgs |  711 +++
 .../bug_gh30264_empty_layer_wrong_bbox.gpkg   |  Bin 0 -> 98304 bytes
 .../bug_gh30264_empty_layer_wrong_bbox.qgs    |  373 ++
 tests/testdata/qgis_server/getcontext.txt     |    8 +-
 .../qgis_server/test_project_wms_filter.gpkg  |  Bin 0 -> 98304 bytes
 .../qgis_server/test_project_wms_filter.qgs   |  306 +
 .../test_project_wms_invalid_layers.qgs       | 1941 +++++++
 ...scribeFeatureType_1_1_0_virtual_fields.txt |   21 +
 .../wms_getcapabilities_empty_layer.txt       |  132 +
 .../PluginPathTest/__init__.py                |    2 +-
 1043 files changed, 18511 insertions(+), 2226 deletions(-)
 create mode 100644 python/gui/auto_additions/qgsgui.py
 rename python/plugins/processing/algs/grass7/description/{r.sun.txt => r.sun.incidout.txt} (88%)
 create mode 100644 python/plugins/processing/algs/grass7/description/r.sun.insoltime.txt
 create mode 100644 python/server/auto_generated/qgsstorebadlayerinfo.sip.in
 create mode 100644 resources/compdcs.csv
 create mode 100644 resources/datum_shift.csv
 create mode 100644 resources/gcs.csv
 create mode 100644 resources/geoccs.csv
 create mode 100644 resources/pcs.csv
 create mode 100644 resources/vertcs.csv
 create mode 100644 src/server/qgsstorebadlayerinfo.cpp
 create mode 100644 src/server/qgsstorebadlayerinfo.h
 create mode 100644 tests/src/gui/testqgsrasterlayersaveasdialog.cpp
 create mode 100644 tests/src/python/test_qgsattributeform.py
 rename tests/src/python/{test_qgsvectorcolorramp.py => test_qgscolorramp.py} (90%)
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_adjacent_parts/expected_label_adjacent_parts.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_curved_label_above_1/expected_label_curved_label_above_1.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_curved_label_below_1/expected_label_curved_label_below_1.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_curved_label_small_segments/expected_label_curved_label_small_segments.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_curved_negative_distance/expected_label_curved_negative_distance.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_multipart_touching_branches/expected_label_multipart_touching_branches.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_multipart_touching_lines/expected_label_multipart_touching_lines.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_label_rotate_with_reproject/expected_label_rotate_with_reproject.png
 create mode 100644 tests/testdata/control_images/labelingengine/expected_parallel_prefer_above/expected_parallel_prefer_above.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetMap_Filter6/WMS_GetMap_Filter6.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetPrint_Basic_Pdf/WMS_GetPrint_Basic_Pdf.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetPrint_Basic_Pdf/WMS_GetPrint_Basic_Pdf_mask.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetPrint_Selection_Pdf/WMS_GetPrint_Selection_Pdf.png
 create mode 100644 tests/testdata/control_images/qgis_server/WMS_GetPrint_Selection_Pdf/WMS_GetPrint_Selection_Pdf_mask.png
 rename tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/{default => }/expected_inverted_polys_curved.png (100%)
 delete mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/precise/expected_inverted_polys_curved.png
 rename tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/{default => }/expected_inverted_polys_preprocess.png (100%)
 create mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/expected_inverted_polys_preprocess_mask.png
 delete mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/precise/expected_inverted_polys_preprocess.png
 rename tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/{default => }/expected_inverted_polys_projection.png (100%)
 create mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/expected_inverted_polys_projection_mask.png
 delete mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/precise/expected_inverted_polys_projection.png
 rename tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/{default => }/expected_inverted_polys_projection2.png (100%)
 create mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/expected_inverted_polys_projection2_mask.png
 delete mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/precise/expected_inverted_polys_projection2.png
 create mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_rotation/expected_inverted_polys_rotation.png
 rename tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/{default => }/expected_inverted_polys_single.png (100%)
 create mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/expected_inverted_polys_single_mask.png
 delete mode 100644 tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/precise/expected_inverted_polys_single.png
 create mode 100644 tests/testdata/layout_atlas_table.qgs
 create mode 100644 tests/testdata/multipatch.shp
 create mode 100644 tests/testdata/multipatch.shx
 create mode 100644 tests/testdata/qgis_server/bug_gh29767_double_vfield.qgs
 create mode 100644 tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.gpkg
 create mode 100644 tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.qgs
 create mode 100644 tests/testdata/qgis_server/test_project_wms_filter.gpkg
 create mode 100644 tests/testdata/qgis_server/test_project_wms_filter.qgs
 create mode 100644 tests/testdata/qgis_server/test_project_wms_invalid_layers.qgs
 create mode 100644 tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_virtual_fields.txt
 create mode 100644 tests/testdata/qgis_server/wms_getcapabilities_empty_layer.txt

diff --git a/.ci/travis/scripts/ctest2travis.py b/.ci/travis/scripts/ctest2travis.py
index 2462bb5583..e6cbe1e07d 100755
--- a/.ci/travis/scripts/ctest2travis.py
+++ b/.ci/travis/scripts/ctest2travis.py
@@ -22,7 +22,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'March 2017'
 __copyright__ = '(C) 2017, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # This script parses output from ctest and injects
 #
diff --git a/.docker/qgis_resources/test_runner/qgis_setup.sh b/.docker/qgis_resources/test_runner/qgis_setup.sh
index 91df75bf26..12abaa83b5 100644
--- a/.docker/qgis_resources/test_runner/qgis_setup.sh
+++ b/.docker/qgis_resources/test_runner/qgis_setup.sh
@@ -38,7 +38,7 @@ printf "[qgis]\n" >> $CONF_MASTER_FILE
 SHOW_TIPS=$(qgis --help 2>&1 | head -2 | grep 'QGIS - ' | perl -npe 'chomp; s/QGIS - (\d+)\.(\d+).*/showTips\1\2=false/')
 printf "%s\n\n" "$SHOW_TIPS" >> $CONF_MASTER_FILE
 
-if [ -n "$PLUGIN_NAME" ]; then
+if [[ -n "$PLUGIN_NAME" ]]; then
     # Enable plugin
     printf '[PythonPlugins]\n' >> $CONF_MASTER_FILE
     printf "%s=true\n\n" "$PLUGIN_NAME" >> $CONF_MASTER_FILE
diff --git a/.travis.yml b/.travis.yml
index 879da56920..a3646681df 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -48,6 +48,8 @@ matrix:
       # CODE LAYOUT
       ##########################################################
     - os: linux
+      dist: xenial
+      name: code layout 👗
       if: type != cron
       env:
         - TRAVIS_CONFIG=code_layout
@@ -55,7 +57,6 @@ matrix:
         apt:
           sources:
             - sourceline: 'ppa:jonathonf/backports'  # silversearcher-ag backport
-            - sourceline: 'ppa:sergey-dryabzhinsky/packages' # doxygen
           packages:
             - doxygen
             - graphviz
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8f73a31ea..5be19ed1ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,7 @@ SET(CMAKE_LINK_DEPENDS_NO_SHARED ON)
 # Project and version
 SET(CPACK_PACKAGE_VERSION_MAJOR "3")
 SET(CPACK_PACKAGE_VERSION_MINOR "4")
-SET(CPACK_PACKAGE_VERSION_PATCH "8")
+SET(CPACK_PACKAGE_VERSION_PATCH "9")
 SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
 SET(RELEASE_NAME "Madeira")
 PROJECT(qgis VERSION ${COMPLETE_VERSION})
diff --git a/ChangeLog b/ChangeLog
index 2bc043d8cd..9a05a28993 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1375 @@
+nirvn <nirvn.asia@gmail.com>	2019-06-21
+
+    [ui] Fix undersized labelling engine settings button on hidpi screens
+
+Merge: a4645f6954 313fc088cf
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-21
+
+    Merge pull request #30291 from elpaso/bugfix-gh30264-wms-bbox-wrong-transform-empty-layers-3_4
+
+    Server wms bbox wrong transform on empty layers
+
+Juergen E. Fischer <jef@norbit.de>	2019-06-20
+
+    osgeo4w: change start directory of shortcuts to 'my documents'
+
+    (cherry picked from commit 3c57d28cfabf615f29af51a332db5ef51bd191f0)
+
+Juergen E. Fischer <jef@norbit.de>	2019-05-17
+
+    windows: fix retrieval of user name and full name with special characters
+
+    (cherry picked from commit b20e93c8e2a68639b37fac227c38ff1da70a29c7)
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-20
+
+    Update reference file
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-03
+
+    [processing] Drop existing fid columns when running Package Layers algorithm
+
+    Many layer sources have fid fields which are not compatible with gpkg
+    requirements, so it's safest to just recreate these anew.
+
+    Fixes errors when packaging certain source layers.
+
+Tom Elwertowski <telwertowski@comcast.net>	2019-06-20
+
+    macOS needs path to GEOS framework for PAL
+
+David Signer <david@opengis.ch>	2019-06-20
+
+    const copy before for loop
+
+David Signer <david@opengis.ch>	2019-06-20
+
+    tests for removing constraints on provider default value
+
+David Signer <david@opengis.ch>	2019-06-20
+
+    remove constrainst of fields that use defaultValueClauses from provider on original
+
+    fixes #28122
+
+Blottiere Paul <blottiere.paul@gmail.com>	2019-06-20
+
+    Replace shared pointer with unique pointer
+
+Blottiere Paul <blottiere.paul@gmail.com>	2019-06-20
+
+    Add unit test
+
+Blottiere Paul <blottiere.paul@gmail.com>	2019-06-20
+
+    Add QLongLong support. Fixes #30263
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-20
+
+    Merge pull request #30271 from elpaso/bugfix-gh30264-wms-bbox-wrong-transform-empty-layers
+
+    Server wms bbox wrong transform on empty layers
+
+    Cherry-pick from master 0290342e6e
+
+Merge: 95271e2776 5c1fd63a88
+Denis Rouzaud <denis.rouzaud@gmail.com>	2019-06-20
+
+    Merge pull request #30287 from qgis/backport-30269-to-release-3_4
+
+    [Backport release-3_4] do not use unique_ptr for QGraphicsItem
+
+Denis Rouzaud <denis.rouzaud@gmail.com>	2019-06-19
+
+    do not hold a pointer to an QGraphicsItem within a QGraphicsItem
+
+    since map canvas is deleting them all, this is causing a crash when trying to delete the already deleted item in the parent item
+
+Denis Rouzaud <denis.rouzaud@gmail.com>	2019-06-19
+
+    do not use unique_ptr for QGraphicsItem
+
+    since the ownership of the item is transferred to the scene
+    this leads to a crash when deleting the object holding the pointer
+
+    since the ownership is transferred back when removing the item, one should
+    take care of resetting the pointer no canvas deletion
+
+    this should fix #28962
+
+Merge: d367269451 d10e0c42bc
+Matthias Kuhn <matthias@opengis.ch>	2019-06-20
+
+    Merge pull request #30285 from qgis/backport-30276-to-release-3_4
+
+    [Backport release-3_4] Fix crash in raster calculator
+
+Juergen E. Fischer <jef@norbit.de>	2019-06-20
+
+    fix build on xenial (Qt <5.6)
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-20
+
+    Improved fix
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-19
+
+    Do not assume we can randomly access std::vector elements without pushing them
+
+    Fix #30232
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-20
+
+    [needs-docs] [labeling] Allow data defined control over line placement options
+
+    Allows users to override the line placement settings (e.g.
+    above/below/on line options) on a per-feature basis. Somehow
+    this one was the only(?) setting from labeling which
+    was missing a data defined control...
+
+    (cherry picked from commit 3bd3aba25b60f32c2170e519a5e9b37249d49be2)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-20
+
+    Fix priority of parallel placements
+
+    Ensure that above line placement is preferred when both above
+    and below line placements are valid
+
+    (cherry picked from commit 04c51db5515c6228301e9ef503016f4d513783a5)
+
+Harrissou Sant-anna <delazj@gmail.com>	2019-06-17
+
+    Add tooltip to file selector widget
+
+lbartoletti <loic.bartoletti@oslandia.com>	2019-06-18
+
+    more tests
+
+lbartoletti <loic.bartoletti@oslandia.com>	2019-06-06
+
+    Fix reshape for snapped point with Z and add test
+
+Merge: c23df6959e 98ef11b0f6
+Matthias Kuhn <matthias@opengis.ch>	2019-06-18
+
+    Merge pull request #30259 from qgis/backport-30253-to-release-3_4
+
+    [Backport release-3_4] Synchronize status bar messages
+
+Merge: a8c171a9ae 004d3f842b
+Matthias Kuhn <matthias@opengis.ch>	2019-06-18
+
+    Merge pull request #30256 from qgis/backport-30255-to-release-3_4
+
+    [Backport release-3_4] update crash reports for github
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-17
+
+    Fix setStatusTip
+
+    Fixes #30249
+
+Juergen E. Fischer <jef@norbit.de>	2019-06-17
+
+    update crash reports for github
+
+Juergen E. Fischer <jef@norbit.de>	2019-06-17
+
+    wfs provider: fix invalid feature id assignment (fixes #29146)
+
+    (cherry picked from commit 62b24064a27c0c4b6a6a4d918a27c48ae3c8551b)
+
+Jorge Gustavo Rocha <jgr@di.uminho.pt>	2019-06-14
+
+    show version information on std::cout on Windows
+
+Jorge Gustavo Rocha <jgr@di.uminho.pt>	2019-06-14
+
+    output usage() and version() to stdout
+
+Jorge Gustavo Rocha <jgr@di.uminho.pt>	2019-06-13
+
+    Add missing entry to usage; replace QStringList by QString
+
+Jorge Gustavo Rocha <jgr@di.uminho.pt>	2019-06-13
+
+    add --version|-v command line option
+
+Merge: cdaec4aa4c 2ba1a9381e
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-17
+
+    Merge pull request #30205 from elpaso/pg-oid-backport
+
+    Pg oid backport
+
+Merge: 271deffc02 7caa167066
+Matthias Kuhn <matthias@opengis.ch>	2019-06-17
+
+    Merge pull request #30183 from m-kuhn/backport-30173-to-release-3_4
+
+    [dbmanager] allow to import GEOMETRY tables
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-16
+
+    Fix collecting geometries when one of the added geometries is already multi-part
+
+    Fixes #30208
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-16
+
+    [processing] Fix missing default value for Select by Expression
+
+    Fixes #30218
+
+Merge: b8e9ed85cb a8323a551e
+rldhont <rldhont@gmail.com>	2019-06-15
+
+    Merge pull request #30224 from rldhont/server-getcontext-fix-hidden-release-3_4
+
+    [Backport release-3_4]GetContext: Fix hidden attribute value based on tree layer visibility
+
+Harrissou Sant-anna <delazj@gmail.com>	2019-06-06
+
+    Update help Url for Core plugins in official doc
+
+    (cherry picked from commit 352423e443398b57493a67d6fe0bc00b76a34cd4)
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-14
+
+    Allow selecting "no projection" as default for new projects
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-14
+
+    Show "no CRS" option in dialog when appropriate
+
+    The projection selection widget (combobox) has a flag `CrsNotSet` that allows showing an additional entry for selection no CRS.
+    The projection selection dialog also has this option (setShowNoProjection). However, a dialog started from a widget with the option
+    set did not have this option set up to now.
+
+rldhont <rldhont@gmail.com>	2019-06-14
+
+    [Test][Server] GetContext: Fix hidden attribute
+
+rldhont <rldhont@gmail.com>	2019-06-14
+
+    [Bugfix][Server] GetContext: Fix hidden attribute value based on tree layer visibility
+
+Merge: 951116894a ea5bcdc67d
+rldhont <rldhont@gmail.com>	2019-06-14
+
+    Merge pull request #9692 from rldhont/fix-regression-server-print-selection-pdf-release-3_4
+
+    Fix regression server print selection pdf release 3.4
+
+Larry Shaffer <lshaffer@boundlessgeo.com>	2019-06-07
+
+    [oauth2] Remove call to override cursor during token refresh
+
+    Unsafe to work with main GUI thread from background auth threads.
+
+Larry Shaffer <lshaffer@boundlessgeo.com>	2019-06-06
+
+    [oauth2] Fix token refresh timeout cancellation with singleshot timer
+
+    Also, avoid O2 library error by checking for refresh token and URL
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-10
+
+    [processing] Nicer strings, default values for select/extract by attribute
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-10
+
+    [processing] Fix exception in select by expression using not equal to operator
+
+    Fixes #30135
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-13
+
+    Merge pull request #30192 from elpaso/pg-oid
+
+    Use Oid alias instead of unsigned int in PG provider
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-13
+
+    Merge pull request #30184 from elpaso/bugfix-gh30041-pg-oid-overflow
+
+    An attempt to fix oid overflow in regclass
+
+    Cherry-picked from master ffe3c31c5c
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-12
+
+    fix backport merge conflict issues
+
+Merge: dc84c873cd 54d05e54fb
+Matthias Kuhn <matthias@opengis.ch>	2019-06-12
+
+    Merge pull request #30172 from m-kuhn/backport-30079-to-release-3_4
+
+    Backport #30079 to release 3 4
+
+olivierdalang <olivier.dalang@gmail.com>	2019-06-05
+
+    [dbmanager] allow to import GEOMETRY tables
+
+    UI is similar to the browser, where generic geometry tables
+    are display several times, one for each type.
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-11
+
+    Update src/gui/qgsmaptoolcapture.cpp
+
+olivierdalang <olivier.dalang@gmail.com>	2019-06-05
+
+    adapt to review
+
+olivierdalang <olivier.dalang@gmail.com>	2019-06-04
+
+    [cad] fix graphical glitches
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-11
+
+    Only use internal crs definition files for GDAL >= 3 builds
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Fix caching of coordinate transforms without authid strings
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Update some test results to pass with GDAL 3/proj 6
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Disable a test which has no meaning under gdal 3.0
+
+    GDAL_FIX_ESRI_WKT is no longer a thing with GDAL 3.0
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Package internal version of older gdal crs .csv files
+
+    These have been removed in GDAL 3.0, yet we depend on them for
+    population of the internal QGIS srs database.
+
+    Accordingly, grab a copy from the gdal archives and package them
+    internally, to ensure that they are available for 3.4 to use
+    even when build against gdal 3.0.
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-10
+
+    Sipify
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-03
+
+    Fix Travis build
+
+    (cherry picked from commit 942827ba527167a5cc87a916d1a613d155bd54be)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-03
+
+    Dox
+
+    (cherry picked from commit a98d12e1e0e9594fb86e8563e7e38b940c4e3b1a)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-03
+
+    [labeling] Fix incorrect bounding box of labels used when
+    map is rotated
+
+    Fixes #24680
+
+    (cherry picked from commit 1bc716fc61077bd0bd3fd28c3889fc12dbd4f6f0)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-03
+
+    [labeling] Fix cannot use labeling map tools when canvas is rotated
+
+    Fixes #25384
+
+    (cherry picked from commit 004b7d879adb1fdec1903cc0a146aef1cb11fd06)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-03
+
+    Add some unit tests for labeling results
+
+    (cherry picked from commit 70a07f930e3e95f077f3f5aa22616d0b6968d1a0)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-30
+
+    Tweak names
+
+    (cherry picked from commit 789a758464a2797b09fa919393091a38a1240771)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    Don't limit label distances to postive values
+
+    Sometimes it's useful to have negative distances, as a 0 distance
+    can still be quite far from line features for some font families.
+
+    (cherry picked from commit 3cb3676329b21dcaa7ab658aed992052a6b7660f)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    Fix warning
+
+    (cherry picked from commit 0458e08c99d558d7cba43881dbe0476ce859171a)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    [labeling] Fix curved labels sometimes placed below line even when
+    set to above line only
+
+    (cherry picked from commit 10c4bb9f9bdf2fa2f7b5a494a8f9e9459f19150d)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Remove unused calculation
+
+    (cherry picked from commit 50315c4a334e696a036121dd4f1bbc31ea3e2a44)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Tweak curved label cost of placing away from center (increase cost slightly to encourage more central placements)
+
+    (cherry picked from commit b04374d46f82bcafece9a0ed0c6d1fce2e192c76)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    [labeling] Update confusing/vague variable names
+
+    (cherry picked from commit f9b8c6ffa3fa631644789090dd22adaaa79d7536)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    [labeling] Fix curved labeling fails when line feature geometry
+    begins with small segments
+
+    Fixes #28699
+
+    (cherry picked from commit 328b0afa6ed7d6a45c4dcdf832bd0835b1df0f11)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    Avoid redundant calculation in QgsMapToPixelSimplifier
+
+    (cherry picked from commit fcacd00a3053fc059dff0a70a4336eff9025a401)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Remove impossible to hit code path - distance is never < 0
+
+    (cherry picked from commit 3d9386b11b26a96996c55555e73de73c94f1b9e6)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    Update for c++11
+
+    (cherry picked from commit b334fc4dc8ec78480b468da1732b79ac0da53ce7)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    [labeling] Don't waste time trying to generate curved labels on lines
+    where the label length is greater then the line length
+
+    (cherry picked from commit e1bd4e921018542671aa70eb626fbf33d7e2acb1)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Optimise method
+
+    Avoid duplicate calculations
+
+    (cherry picked from commit e227e93d0b0c7345613669771da8902fe5ed5703)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    [labeling] Ensure "merge connected features" setting works correctly
+    with line networks that contains forks and branches
+
+    And simplify memory management
+
+    Refs #12173
+
+    (cherry picked from commit e0aa09ce189a665eb26a4e5071145bca7d06d224)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    [labeling] Fix missing labels when multilinestring features are used in
+    conjunction with the "merge connected lines" setting
+
+    Refs #12173
+
+    (cherry picked from commit 7213030ad9556b2da6f74cd9242d5e9e9efaed07)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Fix offset labels from reprojected layers when map is rotated
+
+    Fixes #24796
+
+    (cherry picked from commit 7f8d43eb9bb1b99a75709fb796b487e3157ecec5)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Fix labeling ignores "label per part" setting when geometry parts
+    are adjacent
+
+    Fixes #26763
+
+    (cherry picked from commit 4cb1213efd245ea05b166950d050e1780c340c9f)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-07
+
+    For xyz tiles, disable smooth pixmap transform when
+    we are rendering at native tile resolutions (or just close enough to)
+
+    This allows pixel-perfect rendering of tiles at native resolutions
+
+    (cherry picked from commit 1c9586a73289e933ad37da97509140029ca3f076)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-10
+
+    [layouts] Fix attribute table filtering to items within atlas feature
+    when atlas feature has a different CRS to table layer
+
+    And greatly improve performance when using an attribute table
+    filtered to the atlas feature
+
+    (cherry picked from commit 3cad7ed10681d157c384aeb3e67ec90e65dc44c1)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-07
+
+    [layouts] Fix filtering of attribute table to visible features
+    when linked map is rotated
+
+    The rotation wasn't being taken into account, which meant that
+    visible features weren't shown (and vice versa)
+
+    (cherry picked from commit 762ea69cd2e90eed8779908d87fa373421264eeb)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-10
+
+    Sipify
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-07
+
+    Avoid sqlite database lookup on EVERY https network request
+
+    Whenever a https network request is created, QgsAuthManager::sslCertCustomConfigByHost
+    is used to alter the ssl configuration according to config
+    stored within the sqlite authentication database. This results
+    in a database query being created for EVERY request, regardless
+    of whether a user actually has any ssl configuration set.
+
+    Instead, use a cache to avoid firing off this db query
+    for every request
+
+    (cherry picked from commit c9f8b19647bf3289b444a0212480c1006fcb47d0)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-10
+
+    Use * to fetch all fields from feature services, don't list them one by one
+
+    Otherwise we often exceed the maximum size of a get query
+
+    (cherry picked from commit 182b1e12798b36a3a35d68e80546c94e4de1cd15)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-07
+
+    Fix crash when closing QGIS with open layout designer windows
+
+    Qt connections to a lambda ALWAYS should have a context object,
+    or the connection lasts forever, even after the object which
+    made the connection is deleted.
+
+Larry Shaffer <lshaffer@boundlessgeo.com>	2019-06-06
+
+    Update feature paging fix to allow for WFS version >= 1.1
+
+    But, only default to paging enabled if WFS 2.0.0 or higher
+
+    From Even Rouault: For some older MapServer versions that had a paging
+    extension for WFS 1.1, but didn't support yet WFS 2.0
+
+Larry Shaffer <lshaffer@boundlessgeo.com>	2019-06-05
+
+    Fix WFS connection's version Detect button, which did not support auth
+
+    Adds QgsNewHttpConnection protected member to access auth settings
+
+Larry Shaffer <lshaffer@boundlessgeo.com>	2019-05-23
+
+    Fix WFS connection version-related GUI widget enabling/disabling
+
+    Fixes:
+    - When saved with paging disabled, caused option to never be reenabled
+    - When loading settings, feaure paging now constrained to WFS version
+    - WFS 2.0.0 capabilities are no longer constrained to just that version,
+      allowing versions above as well.
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-05
+
+    Get raster layer name when d&d gpkg, also open vectors in addition to rasters
+
+    Fixes #30050
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-06
+
+    Typo
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-06
+
+    Add test for double widgets in a form
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-06
+
+    Do not emit changed signal if the value has not really changed
+
+    NULL case
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-06
+
+    Do not crash if maptool is not set (got this from a test run)
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-06
+
+    Remove old incomplete documentation
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-05
+
+    Do not emit dateChanged signal if value has not changed
+
+    Fixes #29937
+
+Merge: 988e65906b c358c3ae05
+Matthias Kuhn <matthias@opengis.ch>	2019-06-07
+
+    Merge pull request #30111 from m-kuhn/ssl_certificate_check-3_4
+
+    Only check server SSL certificate if requested
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-04
+
+    Only check server SSL certificate if requested
+
+    Fix #30075
+
+Merge: 26b4ee6efd ea0ed29c29
+rldhont <rldhont@gmail.com>	2019-06-06
+
+    Merge pull request #29962 from rldhont/backport-9133-release-3_4
+
+    Backport : Fix invalid data source message is always shown for release-3_4
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Fix inverted polygon renderer widget not opening colors and other
+    panels inline in style dock
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Fix inverted polygon is distorted when map is rotated
+
+    Fixes #26381
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Fix disabled, broken test
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-06-04
+
+    Update test mask images
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-04
+
+    Fix cache dir in options
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-04
+
+    Use system cache location instead of profile folder for network cache
+
+    Profile folders are often on network drives and shared among machines whereas the cache should be local (as fast as possible) and is disposable.
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-05
+
+    Wlcome page: hide migration from QGIS2 option if settings do not exist
+
+    Fixes #30082
+
+Merge: 0deda6c02a 66d05b826d
+Even Rouault <even.rouault@spatialys.com>	2019-06-05
+
+    Merge pull request #30101 from qgis/backport-30039-to-release-3_4
+
+    [Backport release-3_4] [WFS provider] Avoid dangling download progress dialog
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-20
+
+    Don't show a 'invalid layer source' warning if a user opens a multi-layer
+    vector file, but then chooses not to actually add any layers from the file
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-31
+
+    [WFS provider] Avoid dangling download progress dialog
+
+    While investigating #27384, which I failed to reproduce, I noticed
+    another - minor - issue when loading layers from a local GeoServer
+    instance. Very often (easily triggered by reloading layers with F5),
+    one or several download progress window would be displayed ~ 4 seconds
+    after the refresh had finished. This was due to a race between the
+    creation and destruction of this window.
+
+Merge: 98c0722660 e2c6f71976
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-05
+
+    Merge pull request #30008 from elpaso/bugfix-20848-issue-exporting-as-gpkg_3_4
+
+    Backport and enhance fix export raster as GPKG
+
+Merge: 6f075caf62 863b03112c
+Matthias Kuhn <matthias@opengis.ch>	2019-06-05
+
+    Merge pull request #30086 from m-kuhn/backport-30074-to-release-3_4
+
+    [Backport release-3_4] Fix "default layout templates" button
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-04
+
+    Add QGIS 4 TODO
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-04
+
+    Redirect default layout template button to configured folder
+
+    The "Default templates" button in the layout manager now
+
+    1. checks if there is a composer_templates folder in the app dir
+    2. if not, redirects to the first configured composer templates folder
+    3. if no composer templates folder is configured, it's deactivated
+
+    Fix #30064
+
+Matthias Kuhn <matthias@opengis.ch>	2019-06-04
+
+    Code modernization
+
+Merge: 1fcc982320 c75fd57eb9
+Luigi Pirelli <luipir@gmail.com>	2019-06-03
+
+    Merge pull request #30056 from qgis/backport-29992-to-release-3_4
+
+    [Backport release-3_4] [processing] fix NDVI calculation
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-29
+
+    Backport and enhance fix export raster as GPKG
+
+    Now checks the existence of a vector file with same
+    name, this should also fix the original issue.
+
+    - With test
+    - Requires forward port
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-20
+
+    Fix export raster as GPKG
+
+    Fixes #20848
+
+    Test added for internal functions because the main functionality
+    is in app.
+
+    Partially reverts 006b130e8a85dbba9e499642a8493a515cf41aa0
+    See: https://github.com/qgis/QGIS/commit/006b130e8a85dbba9e499642a8493a515cf41aa0
+
+matteo <matteo.ghetta@gmail.com>	2019-05-28
+
+    [processing] fix NDVI calculation
+
+Merge: b52d2ad6a3 1194955c53
+Alessandro Pasotti <elpaso@itopen.it>	2019-06-03
+
+    Merge pull request #30033 from elpaso/bugfix-gh29700-histogram-crash
+
+    Fix histogram bindings
+
+    > Is it worth adding a python test for this method? Is there an existing one? Gut feeling is that there's likely NO tests for this method, it predates the focus on stability.
+
+    I'll see what I can do.
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    [labeling] Fix curved labels sometimes placed below line even when
+    set to above line only
+
+    (cherry picked from commit 10c4bb9f9bdf2fa2f7b5a494a8f9e9459f19150d)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-29
+
+    [labeling] Fix curved labeling fails when line feature geometry
+    begins with small segments
+
+    Fixes #28699
+
+    (cherry picked from commit 328b0afa6ed7d6a45c4dcdf832bd0835b1df0f11)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Fix some curved labels randomly disappear at certain scales
+
+    Refs #12173
+
+    (cherry picked from commit 0b451b251404ad54af1e2b2103d315d2d9b365c6)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Sip update
+
+    (cherry picked from commit 788ee78d7405f0d5ca80c478854a2216dd6c41d2)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    [needs-docs] Rework new project CRS handling
+
+    The previous approach was severely broken, because the default
+    CRS for new projects setting was ignored as soon as a layer
+    was added to the project.
+
+    Instead, refine the setting to add options
+    - "Use CRS from first layer added": same as previous behavior,
+    the project CRS is set to match the first layer added to a new
+    project
+    - "Use a default CRS": CRS for a new project is set to a preset
+    default CRS, and is left unchanged when adding layers to the
+    project
+
+    Also update qgis_global_settings.ini to reflect these changes.
+
+    Fixes #27516
+
+    (cherry picked from commit dac7259b46521c41917e1f781b09e369d5c8b243)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-28
+
+    Fix QgsSettings::enumValue resolution when used with a non-default section
+
+    (cherry picked from commit 10c686ba321ba96cd37e06cbe3185d96201e62b9)
+
+Martin Dobias <wonder.sk@gmail.com>	2019-05-30
+
+    [browser] Fix removal of views from postgres databases (fixes #29812)
+
+    For views one needs to use DROP VIEW sql command
+
+Peter Petrik <zilolv@gmail.com>	2019-05-30
+
+    fix #30028 Closing Vertex Edititor crashes the app
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-31
+
+    Use sipConvertFromType when returning histogram
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-30
+
+    [OGR provider] Map GeometryCollection of TIN coming from multipart shapefiles to MultiPolygonZ (fixes #29376)
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-30
+
+    [WFS client] Revert read buffer size limitation (fixes #29258, fixes #27626)
+
+    This apparently caused deadlock issues.
+
+    Credit to @nyalldawson for spotting the offending commit.
+
+    Partial revert of 0addae5b783e541953522eabe178426e820bf852
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-30
+
+    Don't crash when copying layout elements
+
+    Guard for existing multiFrames
+
+    Fixes #29747
+
+Peter Petrik <zilolv@gmail.com>	2019-05-29
+
+    fix #29630 spatialindex for NaN points
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-29
+
+    [processing] add default value to user filter matrix (fix #29999)
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-29
+
+    QgsGeometryUtils::segmentizeArc(): fix full circle segmentization (fixes #29895)
+
+    This fix display of full circles coming from PostGIS.
+
+nirvn <nirvn.asia@gmail.com>	2019-05-30
+
+    [layout][ui] Fix missing opacity setting for the label font color button
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-30
+
+    Fix histogram bindings
+
+    Hopfully fixes #29700
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Update src/core/layout/qgslayoutmultiframe.cpp
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Fix crash when exporting layout
+
+    Fixes #29798
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-29
+
+    Remove unused header
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-22
+
+    Remove raw string (not necessary here)
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-21
+
+    Fix identify on map in relation reference widget
+
+    Fixes #22071 - Relation reference widget wrong feature when "on map identification"
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-25
+
+    QgsVectorFileWriter::writeAsVectorFormat(): return appropriate output layer name for GPX driver (github fixes #29819)
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Revert "QgsLayoutAtlasWidget: Disconnect signals when layout RIP"
+
+    This reverts commit 1626565c76b3fc772ed6d075b7274c305009d213.
+
+    Found a better way to delete the widget when designer
+    dialog is closed.
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Ensure the designer dialog is deleted immediately
+
+    Before other signals can crash the application.
+
+    Fixes #29821
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Use qgis::overload
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-27
+
+    QgsLayoutAtlasWidget: Disconnect signals when layout RIP
+
+    Fixes #29821
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Use completeBaseName for exported atlas path
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Fix atlas export when file name contains multiple dots
+
+    Fixes #29980
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-27
+
+    update tests and merge all color ramp tests into single file
+
+    (cherry picked from commit 507c10c7c1f55873678e15f57fb3d1d3a8cdd4b3)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-26
+
+    add tests for QgsColorRamp
+
+    (cherry picked from commit d83b01f5f0fc4816244e8cd6849a7082c5344bec)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-26
+
+    prevent crash in the color brewer color ramp when requested color
+    corresponding to the NaN value (fix #29509)
+
+    (cherry picked from commit bdbc3585d6c1c8e6ae653aac15af29a1dcbee8cc)
+
+Merge: 26f88151d1 11e8347752
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Merge pull request #29984 from qgis/backport-29970-to-release-3_4
+
+    [Backport release-3_4] Server WFS fix describefeaturetype double virtual fields
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-28
+
+    Add missing test control file
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-27
+
+    Server WFS fix describefeaturetype double virtual fields
+
+    Fixes #29767
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-24
+
+    Fix (?) crash when filtering layer with attachment field
+
+    Fixes #21775
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-27
+
+    Regenerate distance area calculation on demand in attribute table
+
+    Storing the instance in the table means that it does not respond
+    correctly to project ellipsoid changes, resulting in area calculations
+    using an outdated ellipsoid until the attribute table is reopened
+
+    Fixes #25500
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-25
+
+    [WFS provider] Support layers with GML field names only differing by cases (github fixes #29858)
+
+Even Rouault <even.rouault@spatialys.com>	2019-05-25
+
+    [WFS provider] Emit TYPENAME and TYPENAMES for WFS 2.0 DescribeFeatureType & GetFeature
+
+    Fixes Redmine #21768 and https://github.com/qgis/QGIS/pull/9849
+
+    Due to confusion in the WFS 2.0 sepecification the situation is that WFS 2.0
+    servers 'randomly' recognize TYPENAME or
+    TYPENAMES depending on DescribeFeatureType and GetFeature requests. So
+    emit both parameters as tests show that it fixes issues and doesn't seem to
+    cause harm.
+
+Klavs Pihlkjær <klavspc@gmail.com>	2019-04-16
+
+    [WFS provider] Improve handling of NAMESPACE(S) (github #9849)
+
+    Modified by E. Rouault
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-27
+
+    use data provider to get provider name as providerType() not available
+    in the LTR branch
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-24
+
+    add tests for style URI retrieval
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-24
+
+    load style from the QML file with the same name as layer file name
+    for GeoPackages, CSV and SpatiaLite (fix #21691)
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-27
+
+    Fix raster calculator invalid expressions
+
+    Tell the user that is invalid instead of
+    silently ignoring undefined functions.
+
+    Fixes #29824
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-27
+
+    Handle file:// links in identify text
+
+    Fixes #29879
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-02-08
+
+    Fix more incorrect 'invalid data source' errors when loading mesh layers
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-02-08
+
+    Fix invalid data source message is always shown after dragging and dropping
+    vector layers to QGIS window
+
+Denis Rouzaud <denis.rouzaud@gmail.com>	2019-05-26
+
+    fix sipify doesn't handle true/false correctly in 3.4 (#29954)
+
+volaya <volayaf@gmail.com>	2019-05-24
+
+    [processing] do not declare output of saveselectfeatures as points
+
+    It can be of any geometry type
+
+Merge: a9d6460a5f d8b50ed881
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-25
+
+    Merge pull request #25793 from alexbruy/backport-r-sun
+
+    [processing] split GRASS r.sun algorithm into two (fix #21637)
+
+Juergen E. Fischer <jef@norbit.de>	2019-05-22
+
+    fix windows build on x86
+
+    (cherry picked from commit b18731bc349def440f01840a4c07827dca6bbaac)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-23
+
+    update tests
+
+    (cherry picked from commit 60090705021f3e9876745b95a1bf874cfb87ce3a)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-23
+
+    [processing] split r.sun into two algorithms as it has mutually
+    exclusive options (fix #21637)
+
+    (cherry picked from commit ab646c4d75c6eac3c37cfa6a284191040048ffe8)
+
+Merge: c16a98d59c a87b46bed3
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-24
+
+    Merge pull request #10090 from qgis/backport-10081-to-release-3_4
+
+    [Backport release-3_4] [maptips] restore wrapping of the long lines (fix #21388)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-24
+
+    QString -> QStringLiteral
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-23
+
+    [maptips] restore wrapping of the long lines (fix #21388)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Also invalid QgsCoordinateReferenceSystem cache on qgis exit, fixes crashes on exit
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-23
+
+    Fix confusing memory management in dxf export
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-23
+
+    Fix dxf export ignores multisurface geometry types
+
+    Fixes #21779
+
+nirvn <nirvn.asia@gmail.com>	2019-05-23
+
+    fix build
+
+nirvn <nirvn.asia@gmail.com>	2019-05-22
+
+    [effects] Fix blur radius not taking dpi into account (fixes #14885)
+
+volaya <volayaf@gmail.com>	2019-05-23
+
+    [processing] do not export sdat files provided as part of a multiple raster input
+
+    fixes #22131
+
+Alessandro Pasotti <elpaso@itopen.it>	2019-05-23
+
+    db-manager: Update input layer and table names
+
+    when selecting an external file
+
+    Fixes #22033 - wrong shapefile import
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Fix rule based label/symbol renderers reset max scale for rules to
+    1:100000
+
+    And improve dox
+
+    Fixes #21845
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Add method to QgsRasterBlockFeedback to collect error messages
+
+    And append raster errors to rendering errors whenever encountered
+
+    (cherry picked from commit 60deffbfa8900a7dd02fe255d84ed16f7d9b2c83)
+
+Juergen E. Fischer <jef@norbit.de>	2019-05-22
+
+    fix build of grassrasterprovider
+
+    (cherry picked from commit fbd328982380be6d78786977364014efd2bceff4)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    If an error occurs while reading raster block data, don't return
+    corrupt data as a result. Instead, indicate explicitly that an
+    error occurred so that callers will fallback on appropriate
+    error paths.
+
+    Fixes rendering random junk (and possible crashes) when
+    attempting to open an invalid gdal raster data source,
+    such as the one attached to
+    https://github.com/OSGeo/gdal/issues/1545
+
+    Also replace manual memory management with unique_ptrs
+
+    (cherry picked from commit 230c62fad6edb7bea3dafb4400411664c77a2542)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-22
+
+    Abort symbol rendering early if render job is cancelled
+
+    Some symbol rendering operations take a long time, especially
+    if settings are accidentally ridiculous (e.g. changing a marker
+    line with interval 1 mm to map units on a small scale map can
+    result in millions+ of markers being rendered for a single
+    feature). If we don't abort these operations responsively,
+    then the render job can become effectively "stuck" and sit
+    burning away CPU for no good reason (or in some cases lock the
+    QGIS ui as a result).
+
+    Instead, for possibly length symbol rendering operations we
+    check at reasonable places for the QgsRenderContext::renderingStopped()
+    flag and if it's set, abort the rendering quickly and gracefully.
+
+    (cherry picked from commit bb0d449954884cbceb4cc3463518d391582c99e3)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-22
+
+    [layouts] Avoid resetting column selection when restoring project
+    with an atttribute table set to the "atlas feature" source
+
+    Fixes #20538
+
+    (cherry picked from commit 810b522f4342e6972e8c12a14c93ee4c9bc300be)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-22
+
+    [processing] use correct parent layer parameter in v.net.distance
+    algorithm (fix #22013)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-22
+
+    [processing] move "Split RGB bands" algorithm inside "Raster tools"
+    group to maintain consistency (fix #21849)
+
+Alexander Bruy <alexander.bruy@gmail.com>	2019-05-22
+
+    [processing] use correct file extension in r.in.lidar.info (fix #21910)
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Add missing dox to QgsRenderContext
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Mark render features methods as throwing QgsCsException, to allow it to be nicely caught in Python
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Fix incorrect entries are added to coordinate transform cache
+    if crs cannot be represented as auth/id combo
+
+Harrissou Sant-anna <delazj@gmail.com>	2019-05-17
+
+    Title case the resampling options
+
+Harrissou Sant-anna <delazj@gmail.com>	2019-05-16
+
+    [needs-docs] Harmonize display of GDAL build vrt options
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-21
+
+    Ensure NULL item shows before field names in expression builder, instead of mixed inside them
+
+Denis Rouzaud <denis.rouzaud@gmail.com>	2019-05-21
+
+    update Travis to build on Trusty for code layout (#10048)
+
+    * update Travis to build on Trusty for code layout
+
+    * fix shellcheck replace ! -z by -n
+
+    * shellcheck: fix  -n doesn't work with unquoted arguments
+
+    * more shellcheck fixes
+
+    * use bash instead of posix
+
+Daniele Viganò <daniele@vigano.me>	2019-05-20
+
+    [RPM] Fix a dependency on older Fedora releases
+
+Merge: cdfe7bc35d eb2f3b33df
+Blottiere Paul <blottiere.paul@gmail.com>	2019-05-21
+
+    Merge pull request #10032 from elemoine/backport-10010-to-release-3_4
+
+    [server] Support FILTER values with colons. backport of #10010
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-20
+
+    Fix all layers are force redrawed whenever a filter is changed in any
+
+Merge: bfe746d2f5 10db307993
+rldhont <rldhont@gmail.com>	2019-05-20
+
+    Merge pull request #9991 from rldhont/server-handle-bad-layers-release-3_4
+
+    [Server] Handle bad layers at QGIS project laoding and throw exception
+
+rldhont <rldhont@gmail.com>	2019-05-13
+
+    [Server] Handle bad layers at QGIS project laoding and throw exception
+
+    This commit return exceptions if a layer is not available like other servers (e.g. UMN) and prevents caching of projects with missing datasources (a datasource may become available later on).
+
+rldhont <rldhont@gmail.com>	2019-04-01
+
+    Add unit-tests to avoid regression in Server printing to PDF output format
+
+    In QGIS 3.4, Selection can be printed in Image output and not in PDF or SVG output.
+
+    A fix has been done 2752f83 to fix inconsistent use of layout render context flags, and draw selection is activated with a flag.
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-01-29
+
+    Fix inconsistent use of layout render context flags
+
+Éric Lemoine <eric.lemoine@oslandia.com>	2019-05-15
+
+    Mention xvfb-run in tests/README.md
+
+Éric Lemoine <eric.lemoine@oslandia.com>	2019-05-15
+
+    Support FILTER values with colons
+
+Harrissou Sant-anna <delazj@gmail.com>	2019-05-15
+
+    Make data type option translatable in GDAL algorithms dialog
+
+Nyall Dawson <nyall.dawson@gmail.com>	2019-05-14
+
+    Avoid unnecessary calculations in SVG fill symbol cloning
+
+    Minor speed boost
+
+Larry Shaffer <lshaffer@boundlessgeo.com>	2019-05-17
+
+    [oauth2] Verify replies still exist and attribute gets are valid
+
+    Fixes unreported crash, due to access on nonexistent replies.
+
+Juergen E. Fischer <jef@norbit.de>	2019-05-17
+
+    Release of 3.4.8
+
 backporting[bot] <backporting[bot]@users.noreply.github.com>	2019-05-14
 
     [Backport release-3_4] stronger test for embedded layers (#10003)
diff --git a/debian/changelog b/debian/changelog
index 9269b06c8f..d436108564 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,14 @@
-qgis (3.4.8) UNRELEASED; urgency=medium
+qgis (3.4.9) UNRELEASED; urgency=medium
+
+  * Release of 3.4.9
+
+ -- Jürgen E. Fischer <jef@norbit.de>  Fri, 21 Jun 2019 14:00:40 +0200
+
+qgis (3.4.8) unstable; urgency=medium
 
   * Release of 3.4.8
 
- -- Jürgen E. Fischer <jef@norbit.de>  Fri, 17 May 2019 13:00:24 +0200
+ -- Jürgen E. Fischer <jef@norbit.de>  Fri, 21 Jun 2019 14:00:40 +0200
 
 qgis (3.4.7) unstable; urgency=medium
 
diff --git a/images/themes/default/mIconAutoPlacementSettings.svg b/images/themes/default/mIconAutoPlacementSettings.svg
index 8226505f37..e01e8340d6 100644
--- a/images/themes/default/mIconAutoPlacementSettings.svg
+++ b/images/themes/default/mIconAutoPlacementSettings.svg
@@ -1,9 +1 @@
-<svg enable-background="new 4 7 24 18" height="18" viewBox="4 7 24 18" width="24" xmlns="http://www.w3.org/2000/svg">
-<g fill="#82a0b4" stroke="#3c5a6e" stroke-linejoin="round" transform="translate(-18 -16)">
-<path d="m30.61 39.576l3.495-3.5h-2.331v-2.334h-2.331v2.334h-2.333z"/>
-<path d="m22.652 31.623l3.5 3.497v-2.332h2.333v-2.331h-2.333v-2.334z"/>
-<path d="m30.61 23.664l3.495 3.5h-2.331v2.333h-2.331v-2.333h-2.333z"/>
-<path d="m38.563 31.623l-3.502 3.497v-2.332h-2.333v-2.331h2.333v-2.334z"/>
-</g>
-<path d="m23.949 14.637v3.083c-.163.059-.325.125-.48.198l-2.176-2.177-2.572 2.573 2.177 2.176c-.073.154-.14.317-.198.48h-3.08v3.617h3.08c.058.161.125.326.198.48l-2.177 2.176 2.572 2.571 2.176-2.176c.155.073.317.14.48.198v3.08h3.617v-3.08c.163-.059.325-.125.48-.198l2.176 2.176 2.571-2.571-2.176-2.176c.072-.154.141-.319.198-.48h3.08v-3.617h-3.08c-.059-.163-.125-.325-.198-.48l2.176-2.176-2.571-2.573-2.176 2.177c-.153-.073-.319-.141-.48-.198v-3.083zm1.809 5.966c1.2 0 2.176.975 2.176 2.176 0 1.2-.976 2.176-2.176 2.176-1.201 0-2.176-.976-2.176-2.176 0-1.202.975-2.176 2.176-2.176z" fill="#fce94f" stroke="#c4a000" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>
+<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="4 7 24 24" width="24"><g fill="#82a0b4" stroke="#3c5a6e" stroke-width=".994" stroke-linejoin="round"><path d="M30.61 39.576l3.495-3.5h-2.331v-2.334h-2.331v2.334H27.11zM22.652 31.623l3.5 3.497v-2.332h2.333v-2.331h-2.333v-2.334zM30.61 23.664l3.495 3.5h-2.331v2.333h-2.331v-2.333H27.11zM38.563 31.623l-3.502 3.497v-2.332h-2.333v-2.331h2.333v-2.334z" transform="matrix(1.0056 0 0 1.00555 -17.279 -15.295)"/></g><path d="M17.722 14.5v3.03c-.16.058-.32.123-.472.195l-2.14-2.14-2.528 2.529 2.14 2.139a5.107 5.107 0 0 0-.194.471H11.5v3.555h3.028c.057.159.123.32.195.472l-2.14 2.139 2.528 2.527 2.14-2.139c.152.072.31.138.471.195V30.5h3.556v-3.027c.16-.058.32-.123.472-.195l2.14 2.139 2.527-2.527-2.14-2.139c.071-.151.139-.313.195-.472H27.5v-3.555h-3.028a5.524 5.524 0 0 0-.195-.471l2.14-2.139-2.528-2.529-2.14 2.14a4.955 4.955 0 0 0-.471-.195V14.5zm1.778 5.864c1.18 0 2.14.958 2.14 2.138s-.96 2.14-2.14 2.14a2.14 2.14 0 0 1 0-4.277z" fill="#fce94f" stroke="#c4a000" stroke-linecap="round" stroke-linejoin="round"/></svg>
diff --git a/linux/org.qgis.qgis.appdata.xml.in b/linux/org.qgis.qgis.appdata.xml.in
index 385c6d5c9c..84f94f1903 100644
--- a/linux/org.qgis.qgis.appdata.xml.in
+++ b/linux/org.qgis.qgis.appdata.xml.in
@@ -18,6 +18,7 @@
 
   <project_group>QGIS</project_group>
   <releases>
+    <release version="3.4.9" date="2019-06-21" />
     <release version="3.4.8" date="2019-05-17" />
     <release version="3.4.7" date="2019-04-19" />
     <release version="3.4.6" date="2019-03-22" />
diff --git a/ms-windows/osgeo4w/package.cmd b/ms-windows/osgeo4w/package.cmd
index d6182f874f..efb0295a34 100644
--- a/ms-windows/osgeo4w/package.cmd
+++ b/ms-windows/osgeo4w/package.cmd
@@ -400,6 +400,12 @@ if not exist %ARCH%\release\qgis\%PACKAGENAME% mkdir %ARCH%\release\qgis\%PACKAG
 	"apps/%PACKAGENAME%/resources/palettes/" ^
 	"apps/%PACKAGENAME%/resources/2to3migration.txt" ^
 	"apps/%PACKAGENAME%/resources/qgis_global_settings.ini" ^
+	"apps/%PACKAGENAME%/resources/compdcs.csv" ^
+	"apps/%PACKAGENAME%/resources/datum_shift.csv" ^
+	"apps/%PACKAGENAME%/resources/gcs.csv" ^
+	"apps/%PACKAGENAME%/resources/geoccs.csv" ^
+	"apps/%PACKAGENAME%/resources/pcs.csv" ^
+	"apps/%PACKAGENAME%/resources/vertcs.csv" ^
 	"apps/%PACKAGENAME%/qgiscrashhandler.exe" ^
 	"bin/%PACKAGENAME%.bat.tmpl" ^
 	"bin/%PACKAGENAME%-designer.bat.tmpl" ^
diff --git a/ms-windows/osgeo4w/postinstall-desktop.bat b/ms-windows/osgeo4w/postinstall-desktop.bat
index 458433d311..10cc733098 100644
--- a/ms-windows/osgeo4w/postinstall-desktop.bat
+++ b/ms-windows/osgeo4w/postinstall-desktop.bat
@@ -11,11 +11,11 @@ call "%OSGEO4W_ROOT%\bin\@package@.bat" --postinstall
 if not %OSGEO4W_MENU_LINKS%==0 mkdir "%OSGEO4W_STARTMENU%"
 if not %OSGEO4W_DESKTOP_LINKS%==0 mkdir "%OSGEO4W_DESKTOP%"
 
-if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\@package@-bin.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\@package@-bin.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@"
+if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\@package@-bin.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@" "" "" "" "" "~$folder.mydocuments$"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\@package@-bin.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@" "" "" "" "" "~$folder.mydocuments$"
 
-if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "Qt Designer with QGIS @version@ custom widgets" "exec hide """%OSGEO4W_ROOT%\bin\@package@-designer.bat"" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "Qt Designer with QGIS @version@ custom widgets" "exec hide %O4W_ROOT%\bin\@package@-designer.bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico"
+if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "Qt Designer with QGIS @version@ custom widgets" "exec hide """%OSGEO4W_ROOT%\bin\@package@-designer.bat"" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico" "" "" "~$folder.mydocuments$"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%O4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "Qt Designer with QGIS @version@ custom widgets" "exec hide %O4W_ROOT%\bin\@package@-designer.bat" "%O4W_ROOT%\apps\@package@\icons\QGIS.ico" "" "" "~$folder.mydocuments$"
 
 set OSGEO4W_ROOT=%OSGEO4W_ROOT:\=\\%
 textreplace -std -t "%O4W_ROOT%\apps\@package@\bin\qgis.reg"
diff --git a/ms-windows/osgeo4w/postinstall-dev.bat b/ms-windows/osgeo4w/postinstall-dev.bat
index cfc68d35a3..e77a581140 100644
--- a/ms-windows/osgeo4w/postinstall-dev.bat
+++ b/ms-windows/osgeo4w/postinstall-dev.bat
@@ -17,12 +17,12 @@ for %%g in (@grassversions@) do (
 	textreplace -std -map @grassmajor@ !v! -t bin\@package@-g!v!.bat
 	call "%OSGEO4W_ROOT%\bin\@package@-g!v!.bat" --postinstall
 
-	if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g!v!.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@ with GRASS !gv! (Nightly)"
-	if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g!v!.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@ with GRASS !gv! (Nightly)"
+	if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g!v!.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@ with GRASS !gv! (Nightly)" "" "" "" "" "~$folder.mydocuments$"
+	if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g!v!.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@ with GRASS !gv! (Nightly)" "" "" "" "" "~$folder.mydocuments$"
 )
 
-if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package@-designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package@-designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico"
+if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_STARTMENU%" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package@-designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico" "" "" "~$folder.mydocuments$"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\nircmd.exe" "%OSGEO4W_DESKTOP%" "Qt Designer with QGIS @version@ custom widgets (Nightly)" "exec hide """%OSGEO4W_ROOT%\bin\@package@-designer.bat"" "%OSGEO4W_ROOT%\apps\@package@\icons\QGIS.ico" "" "" "~$folder.mydocuments$"
 
 set O4W_ROOT=%OSGEO4W_ROOT%
 set OSGEO4W_ROOT=%OSGEO4W_ROOT:\=\\%
diff --git a/ms-windows/osgeo4w/postinstall-grass.bat b/ms-windows/osgeo4w/postinstall-grass.bat
index 9216a05b1f..b851c2cde8 100644
--- a/ms-windows/osgeo4w/postinstall-grass.bat
+++ b/ms-windows/osgeo4w/postinstall-grass.bat
@@ -9,5 +9,5 @@ call "%OSGEO4W_ROOT%\bin\@package@-grass@grassmajor@.bat" --postinstall
 if not %OSGEO4W_MENU_LINKS%==0 mkdir "%OSGEO4W_STARTMENU%"
 if not %OSGEO4W_DESKTOP_LINKS%==0 mkdir "%OSGEO4W_DESKTOP%"
 
-if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g@grassmajor@.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@ with GRASS @grassversion@"
-if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g@grassmajor@.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@ with GRASS @grassversion@"
+if not %OSGEO4W_MENU_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g@grassmajor@.exe" "%OSGEO4W_STARTMENU%" "QGIS Desktop @version@ with GRASS @grassversion@" "" "" "" "" "~$folder.mydocuments$"
+if not %OSGEO4W_DESKTOP_LINKS%==0 nircmd shortcut "%OSGEO4W_ROOT%\bin\@package@-bin-g@grassmajor@.exe" "%OSGEO4W_DESKTOP%" "QGIS Desktop @version@ with GRASS @grassversion@" "" "" "" "" "~$folder.mydocuments$"
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 9be4f7cb70..4cbc8eb591 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -76,6 +76,7 @@ INCLUDE_DIRECTORIES(SYSTEM
   ${QT_QTSVG_INCLUDE_DIR}
   ${QT_QTXML_INCLUDE_DIR}
   ${GDAL_INCLUDE_DIR}
+  ${GEOS_INCLUDE_DIR}
   ${QWT_INCLUDE_DIR}
   ${QCA_INCLUDE_DIR}
   ${QTKEYCHAIN_INCLUDE_DIR}
diff --git a/python/PyQt/PyQt5/Qsci.py b/python/PyQt/PyQt5/Qsci.py
index 42d29d0337..18f43835a0 100644
--- a/python/PyQt/PyQt5/Qsci.py
+++ b/python/PyQt/PyQt5/Qsci.py
@@ -21,6 +21,6 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.Qsci import *
diff --git a/python/PyQt/PyQt5/Qt.py b/python/PyQt/PyQt5/Qt.py
index a59c878991..653f8d25c2 100644
--- a/python/PyQt/PyQt5/Qt.py
+++ b/python/PyQt/PyQt5/Qt.py
@@ -21,7 +21,7 @@ __author__ = 'Marco Bernasocchi'
 __date__ = 'September 2016'
 __copyright__ = '(C) 2016, Marco Bernasocchi'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from PyQt5.Qt import *
diff --git a/python/PyQt/PyQt5/QtCore.py b/python/PyQt/PyQt5/QtCore.py
index 32cb7a597b..d2c411bc05 100644
--- a/python/PyQt/PyQt5/QtCore.py
+++ b/python/PyQt/PyQt5/QtCore.py
@@ -21,7 +21,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtCore import *
 
diff --git a/python/PyQt/PyQt5/QtGui.py b/python/PyQt/PyQt5/QtGui.py
index 8f5fb786b9..6c4eb001c6 100644
--- a/python/PyQt/PyQt5/QtGui.py
+++ b/python/PyQt/PyQt5/QtGui.py
@@ -21,6 +21,6 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtGui import *
diff --git a/python/PyQt/PyQt5/QtNetwork.py b/python/PyQt/PyQt5/QtNetwork.py
index 62af75ae5a..6a728cb1ea 100644
--- a/python/PyQt/PyQt5/QtNetwork.py
+++ b/python/PyQt/PyQt5/QtNetwork.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtNetwork import *
diff --git a/python/PyQt/PyQt5/QtPrintSupport.py b/python/PyQt/PyQt5/QtPrintSupport.py
index f17420d5ca..0fdb41f191 100644
--- a/python/PyQt/PyQt5/QtPrintSupport.py
+++ b/python/PyQt/PyQt5/QtPrintSupport.py
@@ -21,6 +21,6 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtPrintSupport import *
diff --git a/python/PyQt/PyQt5/QtSql.py b/python/PyQt/PyQt5/QtSql.py
index bcb637b01b..5490a7c9b1 100644
--- a/python/PyQt/PyQt5/QtSql.py
+++ b/python/PyQt/PyQt5/QtSql.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtSql import *
diff --git a/python/PyQt/PyQt5/QtSvg.py b/python/PyQt/PyQt5/QtSvg.py
index 69fdabc18c..c30e522afa 100644
--- a/python/PyQt/PyQt5/QtSvg.py
+++ b/python/PyQt/PyQt5/QtSvg.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtSvg import *
diff --git a/python/PyQt/PyQt5/QtTest.py b/python/PyQt/PyQt5/QtTest.py
index 60abe0f05d..8c7a768a21 100644
--- a/python/PyQt/PyQt5/QtTest.py
+++ b/python/PyQt/PyQt5/QtTest.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtTest import *
diff --git a/python/PyQt/PyQt5/QtWebKit.py b/python/PyQt/PyQt5/QtWebKit.py
index 55a9446509..e3e0323e83 100644
--- a/python/PyQt/PyQt5/QtWebKit.py
+++ b/python/PyQt/PyQt5/QtWebKit.py
@@ -21,6 +21,6 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtWebKit import *
diff --git a/python/PyQt/PyQt5/QtWebKitWidgets.py b/python/PyQt/PyQt5/QtWebKitWidgets.py
index 298dc34791..4d41434798 100644
--- a/python/PyQt/PyQt5/QtWebKitWidgets.py
+++ b/python/PyQt/PyQt5/QtWebKitWidgets.py
@@ -21,6 +21,6 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtWebKitWidgets import *
diff --git a/python/PyQt/PyQt5/QtWidgets.py b/python/PyQt/PyQt5/QtWidgets.py
index 65a9298ebf..1150546d08 100644
--- a/python/PyQt/PyQt5/QtWidgets.py
+++ b/python/PyQt/PyQt5/QtWidgets.py
@@ -21,7 +21,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'November 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtWidgets import *
 
diff --git a/python/PyQt/PyQt5/QtXml.py b/python/PyQt/PyQt5/QtXml.py
index 5d29edece8..c068fef7d5 100644
--- a/python/PyQt/PyQt5/QtXml.py
+++ b/python/PyQt/PyQt5/QtXml.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.QtXml import *
diff --git a/python/PyQt/PyQt5/sip.py b/python/PyQt/PyQt5/sip.py
index e7a067be03..a4e71a3d10 100644
--- a/python/PyQt/PyQt5/sip.py
+++ b/python/PyQt/PyQt5/sip.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'October 2017'
 __copyright__ = '(C) 2018, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 try:
     from PyQt5.sip import *
diff --git a/python/PyQt/PyQt5/uic/__init__.py b/python/PyQt/PyQt5/uic/__init__.py
index 12558fc32e..8b81620e89 100644
--- a/python/PyQt/PyQt5/uic/__init__.py
+++ b/python/PyQt/PyQt5/uic/__init__.py
@@ -21,7 +21,7 @@ __author__ = 'Jürgen E. Fischer'
 __date__ = 'February 2016'
 __copyright__ = '(C) 2016, Jürgen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import warnings
 from PyQt5.uic.Compiler import indenter, compiler
diff --git a/python/PyQt/PyQt5/uic/properties.py b/python/PyQt/PyQt5/uic/properties.py
index b8b9bb1f4a..cad1e9d9b8 100644
--- a/python/PyQt/PyQt5/uic/properties.py
+++ b/python/PyQt/PyQt5/uic/properties.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.uic import properties
diff --git a/python/PyQt/PyQt5/uic/pyuic.py b/python/PyQt/PyQt5/uic/pyuic.py
index 9460a9e8c4..9cfc80986b 100644
--- a/python/PyQt/PyQt5/uic/pyuic.py
+++ b/python/PyQt/PyQt5/uic/pyuic.py
@@ -21,7 +21,7 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from PyQt5.uic import pyuic
 if (callable(pyuic.main)):
diff --git a/python/__init__.py b/python/__init__.py
index f223ff4a07..818e3a3584 100644
--- a/python/__init__.py
+++ b/python/__init__.py
@@ -21,7 +21,7 @@ __author__ = 'Martin Dobias'
 __date__ = 'January 2007'
 __copyright__ = '(C) 2007, Martin Dobias'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from builtins import zip
 import os
diff --git a/python/console/__init__.py b/python/console/__init__.py
index dfb46b6960..264b370e30 100644
--- a/python/console/__init__.py
+++ b/python/console/__init__.py
@@ -21,6 +21,6 @@ __author__ = 'Salvatore Larosa'
 __date__ = 'September 2012'
 __copyright__ = '(C) 2012, Salvatore Larosa'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .console import show_console  # NOQA
diff --git a/python/core/auto_generated/effects/qgsblureffect.sip.in b/python/core/auto_generated/effects/qgsblureffect.sip.in
index 3dcc69dfb0..f9e9e8bd01 100644
--- a/python/core/auto_generated/effects/qgsblureffect.sip.in
+++ b/python/core/auto_generated/effects/qgsblureffect.sip.in
@@ -51,28 +51,96 @@ Constructor for QgsBlurEffect.
     virtual QgsBlurEffect *clone() const /Factory/;
 
 
-    void setBlurLevel( const int level );
+    void setBlurLevel( const double level );
 %Docstring
-Sets blur level (strength)
+Sets blur level (radius)
 
 :param level: blur level. Depending on the current blurMethod(), this parameter
               has different effects
 
 .. seealso:: :py:func:`blurLevel`
 
-.. seealso:: :py:func:`blurMethod`
+.. seealso:: :py:func:`setBlurUnit`
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. seealso:: :py:func:`setBlurMethod`
 %End
 
-    int blurLevel() const;
+    double blurLevel() const;
 %Docstring
-Returns the blur level (strength)
+Returns the blur level (radius)
 
 :return: blur level. Depending on the current blurMethod(), this parameter
          has different effects
 
 .. seealso:: :py:func:`setBlurLevel`
 
+.. seealso:: :py:func:`blurUnit`
+
+.. seealso:: :py:func:`blurMapUnitScale`
+
 .. seealso:: :py:func:`blurMethod`
+%End
+
+    void setBlurUnit( const QgsUnitTypes::RenderUnit unit );
+%Docstring
+Sets the units used for the blur level (radius).
+
+:param unit: units for blur level
+
+.. seealso:: :py:func:`blurUnit`
+
+.. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. versionadded:: 3.4.9
+%End
+
+    QgsUnitTypes::RenderUnit blurUnit() const;
+%Docstring
+Returns the units used for the blur level (radius).
+
+:return: units for blur level
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`blurMapUnitScale`
+
+.. versionadded:: 3.4.9
+%End
+
+    void setBlurMapUnitScale( const QgsMapUnitScale &scale );
+%Docstring
+Sets the map unit scale used for the blur strength (radius).
+
+:param scale: map unit scale for blur strength
+
+.. seealso:: :py:func:`blurMapUnitScale`
+
+.. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. versionadded:: 3.4.9
+%End
+
+    const QgsMapUnitScale &blurMapUnitScale() const;
+%Docstring
+Returns the map unit scale used for the blur strength (radius).
+
+:return: map unit scale for blur strength
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`blurUnit`
+
+.. versionadded:: 3.4.9
 %End
 
     void setBlurMethod( const BlurMethod method );
diff --git a/python/core/auto_generated/effects/qgsgloweffect.sip.in b/python/core/auto_generated/effects/qgsgloweffect.sip.in
index a071bdccae..97958bb10a 100644
--- a/python/core/auto_generated/effects/qgsgloweffect.sip.in
+++ b/python/core/auto_generated/effects/qgsgloweffect.sip.in
@@ -118,25 +118,91 @@ Returns the map unit scale used for the spread distance.
 .. seealso:: :py:func:`spreadUnit`
 %End
 
-    void setBlurLevel( const int level );
+    void setBlurLevel( const double level );
 %Docstring
-Sets blur level (strength) for the glow. This can be used to smooth the
+Sets blur level (radius) for the glow. This can be used to smooth the
 output from the glow effect.
 
-:param level: blur level. Values between 0 and 16 are valid, with larger
-              values indicating greater blur strength.
+:param level: blur level.
 
 .. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+%End
+
+    double blurLevel() const;
+%Docstring
+Returns the blur level (radius) for the glow.
+
+:return: blur level.
+
+.. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`blurUnit`
+
+.. seealso:: :py:func:`blurMapUnitScale`
+%End
+
+    void setBlurUnit( const QgsUnitTypes::RenderUnit unit );
+%Docstring
+Sets the units used for the glow blur level (radius).
+
+:param unit: units for blur level
+
+.. seealso:: :py:func:`blurUnit`
+
+.. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. versionadded:: 3.4.9
+%End
+
+    QgsUnitTypes::RenderUnit blurUnit() const;
+%Docstring
+Returns the units used for the glow blur level (radius).
+
+:return: units for blur level
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`blurMapUnitScale`
+
+.. versionadded:: 3.4.9
 %End
 
-    int blurLevel() const;
+    void setBlurMapUnitScale( const QgsMapUnitScale &scale );
 %Docstring
-Returns the blur level (strength) for the glow.
+Sets the map unit scale used for the glow blur strength (radius).
 
-:return: blur level. Value will be between 0 and 16, with larger
-         values indicating greater blur strength.
+:param scale: map unit scale for blur strength
+
+.. seealso:: :py:func:`blurMapUnitScale`
 
 .. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. versionadded:: 3.4.9
+%End
+
+    const QgsMapUnitScale &blurMapUnitScale() const;
+%Docstring
+Returns the map unit scale used for the glow blur strength (radius).
+
+:return: map unit scale for blur strength
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`blurUnit`
+
+.. versionadded:: 3.4.9
 %End
 
     void setOpacity( const double opacity );
diff --git a/python/core/auto_generated/effects/qgsshadoweffect.sip.in b/python/core/auto_generated/effects/qgsshadoweffect.sip.in
index 7e35bd97a2..240421bf95 100644
--- a/python/core/auto_generated/effects/qgsshadoweffect.sip.in
+++ b/python/core/auto_generated/effects/qgsshadoweffect.sip.in
@@ -29,24 +29,92 @@ Base class for paint effects which offset, blurred shadows
     virtual void readProperties( const QgsStringMap &props );
 
 
-    void setBlurLevel( const int level );
+    void setBlurLevel( const double level );
 %Docstring
-Sets blur level (strength) for the shadow.
+Sets blur level (radius) for the shadow.
 
-:param level: blur level. Values between 0 and 16 are valid, with larger
+:param level: blur level.
               values indicating greater blur strength.
 
 .. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
 %End
 
-    int blurLevel() const;
+    double blurLevel() const;
 %Docstring
-Returns the blur level (strength) for the shadow.
+Returns the blur level (radius) for the shadow.
 
-:return: blur level. Value will be between 0 and 16, with larger
+:return: blur level.
          values indicating greater blur strength.
 
 .. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`blurUnit`
+
+.. seealso:: :py:func:`blurMapUnitScale`
+%End
+
+    void setBlurUnit( const QgsUnitTypes::RenderUnit unit );
+%Docstring
+Sets the units used for the shadow blur level (radius).
+
+:param unit: units for blur level
+
+.. seealso:: :py:func:`blurUnit`
+
+.. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. versionadded:: 3.4.9
+%End
+
+    QgsUnitTypes::RenderUnit blurUnit() const;
+%Docstring
+Returns the units used for the shadow blur level (radius).
+
+:return: units for blur level
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`blurMapUnitScale`
+
+.. versionadded:: 3.4.9
+%End
+
+    void setBlurMapUnitScale( const QgsMapUnitScale &scale );
+%Docstring
+Sets the map unit scale used for the shadow blur strength (radius).
+
+:param scale: map unit scale for blur strength
+
+.. seealso:: :py:func:`blurMapUnitScale`
+
+.. seealso:: :py:func:`setBlurLevel`
+
+.. seealso:: :py:func:`setBlurUnit`
+
+.. versionadded:: 3.4.9
+%End
+
+    const QgsMapUnitScale &blurMapUnitScale() const;
+%Docstring
+Returns the map unit scale used for the shadow blur strength (radius).
+
+:return: map unit scale for blur strength
+
+.. seealso:: :py:func:`setBlurMapUnitScale`
+
+.. seealso:: :py:func:`blurLevel`
+
+.. seealso:: :py:func:`blurUnit`
+
+.. versionadded:: 3.4.9
 %End
 
     void setOffsetAngle( const int angle );
diff --git a/python/core/auto_generated/qgsattributeeditorelement.sip.in b/python/core/auto_generated/qgsattributeeditorelement.sip.in
index afc767d3e1..27e2752a86 100644
--- a/python/core/auto_generated/qgsattributeeditorelement.sip.in
+++ b/python/core/auto_generated/qgsattributeeditorelement.sip.in
@@ -55,7 +55,7 @@ layer.
 %Docstring
 Constructor
 
-:param type: The type of the new element. Should never
+:param type: The type of the new element.
 :param name:
 :param parent:
 %End
diff --git a/python/core/auto_generated/qgslabelsearchtree.sip.in b/python/core/auto_generated/qgslabelsearchtree.sip.in
index 61fc8bc91b..dd494f2f1f 100644
--- a/python/core/auto_generated/qgslabelsearchtree.sip.in
+++ b/python/core/auto_generated/qgslabelsearchtree.sip.in
@@ -11,6 +11,7 @@
 
 
 
+
 class QgsLabelSearchTree
 {
 %Docstring
@@ -37,6 +38,13 @@ Removes and deletes all the entries
 
 
 
+    void setMapSettings( const QgsMapSettings &settings );
+%Docstring
+Sets the map ``settings`` associated with the labeling run.
+
+.. versionadded:: 3.4.8
+%End
+
   private:
     //! QgsLabelSearchTree cannot be copied.
     QgsLabelSearchTree( const QgsLabelSearchTree &rh );
diff --git a/python/core/auto_generated/qgspallabeling.sip.in b/python/core/auto_generated/qgspallabeling.sip.in
index f5906edc02..d68951b61e 100644
--- a/python/core/auto_generated/qgspallabeling.sip.in
+++ b/python/core/auto_generated/qgspallabeling.sip.in
@@ -19,25 +19,58 @@ class QgsLabelPosition
 #include "qgspallabeling.h"
 %End
   public:
-    QgsLabelPosition( int id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString() );
+
+    QgsLabelPosition( QgsFeatureId id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString(),
+                      const QgsGeometry &labelGeometry = QgsGeometry() );
+%Docstring
+Constructor for QgsLabelPosition.
+
+:param id: associated feature ID
+:param r: label rotation in degrees clockwise
+:param corners: corner points of label bounding box, in map units
+:param rect: label bounding box, in map units
+:param w: width of label, in map units
+:param h: height of label, in map units
+:param layer: ID of associated map layer
+:param labeltext: text rendered for label
+:param labelfont: font used to render label
+:param upside_down: TRUE if label is upside down
+:param diagram: TRUE if label is a diagram
+:param pinned: TRUE if label has pinned placement
+:param providerId: ID of associated label provider
+:param labelGeometry: polygon geometry of label boundary
+%End
 
     QgsLabelPosition();
 %Docstring
 Constructor for QgsLabelPosition
 %End
 
-    int featureId;
+    QgsFeatureId featureId;
+
     double rotation;
+
     QVector< QgsPointXY > cornerPoints;
     QgsRectangle labelRect;
+
+    QgsGeometry labelGeometry;
+
     double width;
+
     double height;
+
     QString layerID;
+
     QString labelText;
+
     QFont labelFont;
+
     bool upsideDown;
+
     bool isDiagram;
+
     bool isPinned;
+
     QString providerID;
 };
 
@@ -238,6 +271,7 @@ class QgsPalLayerSettings
       RepeatDistanceUnit,
       Priority,
       PredefinedPositionOrder,
+      LinePlacementOptions,
 
       // rendering
       ScaleVisibility,
@@ -516,6 +550,13 @@ Returns infos about labels at a given (map) position
     QList<QgsLabelPosition> labelsWithinRect( const QgsRectangle &r ) const;
 %Docstring
 Returns infos about labels within a given (map) rectangle
+%End
+
+    void setMapSettings( const QgsMapSettings &settings );
+%Docstring
+Sets the map ``settings`` associated with the labeling run.
+
+.. versionadded:: 3.4.8
 %End
 
   private:
@@ -538,7 +579,7 @@ called to find out whether the layer is used for labeling
 %End
 
 
-    static QgsGeometry prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry() ) /Factory/;
+    static QgsGeometry prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry(), bool mergeLines = false ) /Factory/;
 %Docstring
 Prepares a geometry for registration with PAL. Handles reprojection, rotation, clipping, etc.
 
@@ -546,13 +587,14 @@ Prepares a geometry for registration with PAL. Handles reprojection, rotation, c
 :param context: render context
 :param ct: coordinate transform, or invalid transform if no transformation required
 :param clipGeometry: geometry to clip features to, if applicable
+:param mergeLines: TRUE if touching lines from this layer will be merged and treated as single features during labeling
 
 :return: prepared geometry
 
 .. versionadded:: 2.9
 %End
 
-    static bool geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry() );
+    static bool geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry(), bool mergeLines = false );
 %Docstring
 Checks whether a geometry requires preparation before registration with PAL
 
@@ -560,6 +602,7 @@ Checks whether a geometry requires preparation before registration with PAL
 :param context: render context
 :param ct: coordinate transform, or invalid transform if no transformation required
 :param clipGeometry: geometry to clip features to, if applicable
+:param mergeLines: TRUE if touching lines from this layer will be merged and treated as single features during labeling
 
 :return: true if geometry requires preparation
 
diff --git a/python/core/auto_generated/qgsrendercontext.sip.in b/python/core/auto_generated/qgsrendercontext.sip.in
index bded1fa66d..d2c06c4a7e 100644
--- a/python/core/auto_generated/qgsrendercontext.sip.in
+++ b/python/core/auto_generated/qgsrendercontext.sip.in
@@ -203,6 +203,11 @@ render and represents the exact bounds of the map being rendered.
 %End
 
     const QgsMapToPixel &mapToPixel() const;
+%Docstring
+Returns the context's map to pixel transform, which transforms between map coordinates and device coordinates.
+
+.. seealso:: :py:func:`setMapToPixel`
+%End
 
     double scaleFactor() const;
 %Docstring
@@ -214,8 +219,20 @@ per millimeter.
 %End
 
     bool renderingStopped() const;
+%Docstring
+Returns TRUE if the rendering operation has been stopped and any ongoing
+rendering should be canceled immediately.
+
+.. seealso:: :py:func:`setRenderingStopped`
+%End
 
     bool forceVectorOutput() const;
+%Docstring
+Returns TRUE if rendering operations should use vector operations instead
+of any faster raster shortcuts.
+
+.. seealso:: :py:func:`setForceVectorOutput`
+%End
 
     bool useAdvancedEffects() const;
 %Docstring
@@ -228,6 +245,11 @@ Used to enable or disable advanced effects such as blend modes
 %End
 
     bool drawEditingInformation() const;
+%Docstring
+Returns TRUE if edit markers should be drawn during the render operation.
+
+.. seealso:: :py:func:`setDrawEditingInformation`
+%End
 
     double rendererScale() const;
 %Docstring
@@ -239,6 +261,11 @@ for the rendered map, eg 1000.0 for a 1:1000 map render.
 
 
     QColor selectionColor() const;
+%Docstring
+Returns the color to use when rendering selected features.
+
+.. seealso:: :py:func:`setSelectionColor`
+%End
 
     bool showSelection() const;
 %Docstring
@@ -267,6 +294,11 @@ Set to an invalid QgsCoordinateTransform to indicate that no transformation is r
 %End
 
     void setMapToPixel( const QgsMapToPixel &mtp );
+%Docstring
+Sets the context's map to pixel transform, which transforms between map coordinates and device coordinates.
+
+.. seealso:: :py:func:`mapToPixel`
+%End
 
     void setExtent( const QgsRectangle &extent );
 %Docstring
@@ -298,8 +330,19 @@ render and represents the exact bounds of the map being rendered.
 %End
 
     void setDrawEditingInformation( bool b );
+%Docstring
+Sets whether edit markers should be drawn during the render operation.
+
+.. seealso:: :py:func:`drawEditingInformation`
+%End
 
     void setRenderingStopped( bool stopped );
+%Docstring
+Sets whether the rendering operation has been ``stopped`` and any ongoing
+rendering should be canceled immediately.
+
+.. seealso:: :py:func:`renderingStopped`
+%End
 
     void setDistanceArea( const QgsDistanceArea &distanceArea );
 %Docstring
@@ -336,8 +379,20 @@ of any rendering operations.
 %End
 
     void setForceVectorOutput( bool force );
+%Docstring
+Sets whether rendering operations should use vector operations instead
+of any faster raster shortcuts.
+
+.. seealso:: :py:func:`forceVectorOutput`
+%End
+
 
     void setSelectionColor( const QColor &color );
+%Docstring
+Sets the ``color`` to use when rendering selected features.
+
+.. seealso:: :py:func:`selectionColor`
+%End
 
     void setShowSelection( bool showSelection );
 %Docstring
diff --git a/python/core/auto_generated/raster/qgsrasterinterface.sip.in b/python/core/auto_generated/raster/qgsrasterinterface.sip.in
index 06a1010979..dc22c36d55 100644
--- a/python/core/auto_generated/raster/qgsrasterinterface.sip.in
+++ b/python/core/auto_generated/raster/qgsrasterinterface.sip.in
@@ -61,6 +61,25 @@ Whether our painter is drawing to a temporary image used just by this layer
 Set whether our painter is drawing to a temporary image used just by this layer
 
 .. seealso:: :py:func:`renderPartialOutput`
+%End
+
+    void appendError( const QString &error );
+%Docstring
+Appends an error message to the stored list of errors. Should be called
+whenever an error is encountered while retrieving a raster block.
+
+.. seealso:: :py:func:`errors`
+
+.. versionadded:: 3.8.0
+%End
+
+    QStringList errors() const;
+%Docstring
+Returns a list of any errors encountered while retrieving the raster block.
+
+.. seealso:: :py:func:`appendError`
+
+.. versionadded:: 3.8.0
 %End
 
 };
@@ -327,8 +346,8 @@ Returns a band histogram. Histograms are cached in providers.
       maximum = PyFloat_AsDouble( a3 );
     }
 
-    QgsRasterHistogram h = sipCpp->histogram( a0, a1, minimum, maximum, *a4, a5, a6, a7 );
-    sipRes = &h;
+    QgsRasterHistogram *h = new QgsRasterHistogram( sipCpp->histogram( a0, a1, minimum, maximum, *a4, a5, a6, a7 ) );
+    return sipConvertFromType( h, sipType_QgsRasterHistogram, Py_None );
 %End
 
 
diff --git a/python/core/auto_generated/symbology/qgsheatmaprenderer.sip.in b/python/core/auto_generated/symbology/qgsheatmaprenderer.sip.in
index 368580e528..b2f6cd1ba8 100644
--- a/python/core/auto_generated/symbology/qgsheatmaprenderer.sip.in
+++ b/python/core/auto_generated/symbology/qgsheatmaprenderer.sip.in
@@ -29,7 +29,7 @@ A renderer which draws points as a live heatmap
 
     virtual void startRender( QgsRenderContext &context, const QgsFields &fields );
 
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
 
     virtual void stopRender( QgsRenderContext &context );
 
diff --git a/python/core/auto_generated/symbology/qgsinvertedpolygonrenderer.sip.in b/python/core/auto_generated/symbology/qgsinvertedpolygonrenderer.sip.in
index abc65c2ec4..8e9248605a 100644
--- a/python/core/auto_generated/symbology/qgsinvertedpolygonrenderer.sip.in
+++ b/python/core/auto_generated/symbology/qgsinvertedpolygonrenderer.sip.in
@@ -46,7 +46,7 @@ Direct copies are forbidden. Use clone() instead.
     virtual void startRender( QgsRenderContext &context, const QgsFields &fields );
 
 
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
 
 %Docstring
 Renders a given feature.
diff --git a/python/core/auto_generated/symbology/qgsnullsymbolrenderer.sip.in b/python/core/auto_generated/symbology/qgsnullsymbolrenderer.sip.in
index d725009db7..bcfe15c6ac 100644
--- a/python/core/auto_generated/symbology/qgsnullsymbolrenderer.sip.in
+++ b/python/core/auto_generated/symbology/qgsnullsymbolrenderer.sip.in
@@ -29,7 +29,7 @@ and diagrams for the layer. Selected features will also be drawn with a default
     virtual QgsSymbol *originalSymbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const;
 
 
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
 
     virtual void stopRender( QgsRenderContext &context );
 
diff --git a/python/core/auto_generated/symbology/qgspointdistancerenderer.sip.in b/python/core/auto_generated/symbology/qgspointdistancerenderer.sip.in
index 0ab7e9b874..659a8ab68c 100644
--- a/python/core/auto_generated/symbology/qgspointdistancerenderer.sip.in
+++ b/python/core/auto_generated/symbology/qgspointdistancerenderer.sip.in
@@ -65,7 +65,7 @@ Constructor for QgsPointDistanceRenderer.
 
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props = QgsStringMap() ) const;
 
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
 
     virtual QSet<QString> usedAttributes( const QgsRenderContext &context ) const;
 
diff --git a/python/core/auto_generated/symbology/qgsrenderer.sip.in b/python/core/auto_generated/symbology/qgsrenderer.sip.in
index 05a6bddaf2..917a9a4290 100644
--- a/python/core/auto_generated/symbology/qgsrenderer.sip.in
+++ b/python/core/auto_generated/symbology/qgsrenderer.sip.in
@@ -175,7 +175,7 @@ and generate a proper subclass.
 :return: A copy of this renderer
 %End
 
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
 %Docstring
 Render a feature using this renderer in the given context.
 Must be called between startRender() and stopRender() calls.
@@ -476,12 +476,7 @@ implementation does not use subrenderers and will always return null.
   protected:
     QgsFeatureRenderer( const QString &type );
 
-    void renderFeatureWithSymbol( const QgsFeature &feature,
-                                  QgsSymbol *symbol,
-                                  QgsRenderContext &context,
-                                  int layer,
-                                  bool selected,
-                                  bool drawVertexMarker );
+    void renderFeatureWithSymbol( const QgsFeature &feature, QgsSymbol *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker ) throw( QgsCsException );
 %Docstring
 Render the ``feature`` with the ``symbol`` using ``context``.
 Use ``layer`` to specify the symbol layer, ``selected`` to
diff --git a/python/core/auto_generated/symbology/qgsrulebasedrenderer.sip.in b/python/core/auto_generated/symbology/qgsrulebasedrenderer.sip.in
index a1f28f4c2e..1464129e4b 100644
--- a/python/core/auto_generated/symbology/qgsrulebasedrenderer.sip.in
+++ b/python/core/auto_generated/symbology/qgsrulebasedrenderer.sip.in
@@ -453,7 +453,7 @@ Constructor for convenience. Creates a root rule and adds a default rule with sy
 Returns symbol for current feature. Should not be used individually: there could be more symbols for a feature
 %End
 
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
 
 
     virtual void startRender( QgsRenderContext &context, const QgsFields &fields );
diff --git a/python/core/auto_generated/symbology/qgssymbol.sip.in b/python/core/auto_generated/symbology/qgssymbol.sip.in
index 0687f0440e..888e0053ff 100644
--- a/python/core/auto_generated/symbology/qgssymbol.sip.in
+++ b/python/core/auto_generated/symbology/qgssymbol.sip.in
@@ -428,7 +428,7 @@ Returns whether the symbol utilizes any data defined properties.
 .. deprecated:: Will be removed in QGIS 4.0
 %End
 
-    void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 );
+    void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 ) throw( QgsCsException );
 %Docstring
 Render a feature. Before calling this the startRender() method should be called to initialize
 the rendering process. After rendering all features stopRender() must be called.
diff --git a/python/core/contextmanagers.py b/python/core/contextmanagers.py
index 8200db3463..cfa5301208 100644
--- a/python/core/contextmanagers.py
+++ b/python/core/contextmanagers.py
@@ -21,7 +21,7 @@ __author__ = 'Nathan Woodrow'
 __date__ = 'May 2014'
 __copyright__ = '(C) 2014, Nathan Woodrow'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 from contextlib import contextmanager
diff --git a/python/gui/auto_additions/qgsgui.py b/python/gui/auto_additions/qgsgui.py
new file mode 100644
index 0000000000..ca9571e97c
--- /dev/null
+++ b/python/gui/auto_additions/qgsgui.py
@@ -0,0 +1,2 @@
+# The following has been generated automatically from src/gui/qgsgui.h
+QgsGui.ProjectCrsBehavior.baseClass = QgsGui
diff --git a/python/gui/auto_generated/editorwidgets/qgsrelationreferencewidget.sip.in b/python/gui/auto_generated/editorwidgets/qgsrelationreferencewidget.sip.in
index 2f1874f854..0bd80d6873 100644
--- a/python/gui/auto_generated/editorwidgets/qgsrelationreferencewidget.sip.in
+++ b/python/gui/auto_generated/editorwidgets/qgsrelationreferencewidget.sip.in
@@ -72,7 +72,7 @@ determines if the foreign key is shown in a combox box or a read-only line edit
 
     bool allowMapIdentification();
 %Docstring
-determines if the widge offers the possibility to select the related feature on the map (using a dedicated map tool)
+determines if the widget offers the possibility to select the related feature on the map (using a dedicated map tool)
 %End
     void setAllowMapIdentification( bool allowMapIdentification );
 
diff --git a/python/gui/auto_generated/qgsadvanceddigitizingcanvasitem.sip.in b/python/gui/auto_generated/qgsadvanceddigitizingcanvasitem.sip.in
index d256f8fc58..7df742bcc9 100644
--- a/python/gui/auto_generated/qgsadvanceddigitizingcanvasitem.sip.in
+++ b/python/gui/auto_generated/qgsadvanceddigitizingcanvasitem.sip.in
@@ -10,6 +10,7 @@
 
 
 
+
 class QgsAdvancedDigitizingCanvasItem : QgsMapCanvasItem
 {
 %Docstring
@@ -25,8 +26,6 @@ The QgsAdvancedDigitizingCanvasItem class draws the graphical elements of the CA
     virtual void paint( QPainter *painter );
 
 
-  protected:
-
 };
 
 /************************************************************************
diff --git a/python/gui/auto_generated/qgsadvanceddigitizingdockwidget.sip.in b/python/gui/auto_generated/qgsadvanceddigitizingdockwidget.sip.in
index b551b7016b..b1ca78972d 100644
--- a/python/gui/auto_generated/qgsadvanceddigitizingdockwidget.sip.in
+++ b/python/gui/auto_generated/qgsadvanceddigitizingdockwidget.sip.in
@@ -264,6 +264,13 @@ Removes all points from the CAD point list
 Adds point to the CAD point list
 
 .. versionadded:: 3.0
+%End
+
+    void removePreviousPoint();
+%Docstring
+Remove previous point in the CAD point list
+
+.. versionadded:: 3.8
 %End
 
     void setPoints( const QList<QgsPointXY> &points );
diff --git a/python/gui/auto_generated/qgsgui.sip.in b/python/gui/auto_generated/qgsgui.sip.in
index 1ac8edd1fb..6ea49b8c95 100644
--- a/python/gui/auto_generated/qgsgui.sip.in
+++ b/python/gui/auto_generated/qgsgui.sip.in
@@ -10,7 +10,7 @@
 
 
 
-class QgsGui
+class QgsGui : QObject
 {
 %Docstring
 QgsGui is a singleton class containing various registry and other global members
@@ -24,6 +24,12 @@ related to GUI classes.
 %End
   public:
 
+    enum ProjectCrsBehavior
+    {
+      UseCrsOfFirstLayerAdded,
+      UsePresetCrs,
+    };
+
 
 
     static QgsGui *instance();
diff --git a/python/gui/auto_generated/qgsmaptooladvanceddigitizing.sip.in b/python/gui/auto_generated/qgsmaptooladvanceddigitizing.sip.in
index e011743e59..56ff3c2f2a 100644
--- a/python/gui/auto_generated/qgsmaptooladvanceddigitizing.sip.in
+++ b/python/gui/auto_generated/qgsmaptooladvanceddigitizing.sip.in
@@ -117,6 +117,8 @@ This method is protected because it should be a decision of the map tool and not
 .. versionadded:: 3.0
 %End
 
+
+
   public:
 
     virtual void cadCanvasPressEvent( QgsMapMouseEvent *e );
diff --git a/python/gui/auto_generated/qgsnewhttpconnection.sip.in b/python/gui/auto_generated/qgsnewhttpconnection.sip.in
index 6e6429f6b3..625ec52421 100644
--- a/python/gui/auto_generated/qgsnewhttpconnection.sip.in
+++ b/python/gui/auto_generated/qgsnewhttpconnection.sip.in
@@ -97,6 +97,7 @@ Returns the "test connection" button.
 
 
 
+
     virtual QString wfsSettingsKey( const QString &base, const QString &connectionName ) const;
 %Docstring
 Returns the QSettings key for WFS related settings for the connection.
diff --git a/python/gui/auto_generated/qgsscalerangewidget.sip.in b/python/gui/auto_generated/qgsscalerangewidget.sip.in
index 2f7616a06a..ad3da5efb2 100644
--- a/python/gui/auto_generated/qgsscalerangewidget.sip.in
+++ b/python/gui/auto_generated/qgsscalerangewidget.sip.in
@@ -68,6 +68,13 @@ The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.
 .. seealso:: :py:func:`setMaximumScale`
 
 .. seealso:: :py:func:`setScaleRange`
+
+.. warning::
+
+   Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
+   widget, and will alter any previously set maximum scale to pass this constraint. Always
+   call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
+   use the convenience method setScaleRange() instead.
 %End
 
     void setMaximumScale( double scale );
@@ -80,6 +87,13 @@ The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.
 .. seealso:: :py:func:`setMinimumScale`
 
 .. seealso:: :py:func:`setScaleRange`
+
+.. warning::
+
+   Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
+   widget, and will alter any previously set maximum scale to pass this constraint. Always
+   call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
+   use the convenience method setScaleRange() instead.
 %End
 
     void setScaleRange( double min, double max );
diff --git a/python/gui/auto_generated/qgsstatusbar.sip.in b/python/gui/auto_generated/qgsstatusbar.sip.in
index 6f42218be8..11edbff18b 100644
--- a/python/gui/auto_generated/qgsstatusbar.sip.in
+++ b/python/gui/auto_generated/qgsstatusbar.sip.in
@@ -88,6 +88,15 @@ Removes any temporary message being shown.
 .. seealso:: :py:func:`showMessage`
 %End
 
+    void setParentStatusBar( QStatusBar *statusBar );
+%Docstring
+Sets the parent status bar.
+Messages that are shown on the parent status bar will be intercepted
+and shown on this status bar too.
+
+.. versionadded:: 3.8
+%End
+
 
   protected:
 
diff --git a/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in b/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in
index 7517489b06..c7034e0515 100644
--- a/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in
+++ b/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in
@@ -45,6 +45,9 @@ Constructor
     virtual void setContext( const QgsSymbolWidgetContext &context );
 
 
+    virtual void setDockMode( bool dockMode );
+
+
   protected:
 
 };
diff --git a/python/gui/gui_auto.sip b/python/gui/gui_auto.sip
index bff290273b..ac4f3f169a 100644
--- a/python/gui/gui_auto.sip
+++ b/python/gui/gui_auto.sip
@@ -3,7 +3,6 @@
 %Include auto_generated/qgsdetaileditemdata.sip
 %Include auto_generated/qgsexpressionbuilderdialog.sip
 %Include auto_generated/qgsgeometryrubberband.sip
-%Include auto_generated/qgsgui.sip
 %Include auto_generated/qgshelp.sip
 %Include auto_generated/qgshighlight.sip
 %Include auto_generated/qgsmapcanvasitem.sip
@@ -122,6 +121,7 @@
 %Include auto_generated/qgsgradientcolorrampdialog.sip
 %Include auto_generated/qgsgradientstopeditor.sip
 %Include auto_generated/qgsgroupwmsdatadialog.sip
+%Include auto_generated/qgsgui.sip
 %Include auto_generated/qgshistogramwidget.sip
 %Include auto_generated/qgsidentifymenu.sip
 %Include auto_generated/qgskeyvaluewidget.sip
diff --git a/python/plugins/MetaSearch/resources/connections-default.xml b/python/plugins/MetaSearch/resources/connections-default.xml
index c1c2bed12a..aae5269305 100644
--- a/python/plugins/MetaSearch/resources/connections-default.xml
+++ b/python/plugins/MetaSearch/resources/connections-default.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Guidance: https://docs.qgis.org/2.18/en/docs/user_manual/plugins/plugins_metasearch.html#managing-catalog-services -->
+<!-- Guidance: https://docs.qgis.org/testing/en/docs/user_manual/plugins/core_plugins/plugins_metasearch.html#managing-catalog-services -->
 <qgsCSWConnections version="1.0">
     <csw name="USA: Data.gov CSW" url="https://catalog.data.gov/csw-all"/>
     <csw name="Danmark: National CSW (geodata-info)" url="https://geodata-info.dk/srv/dan/csw"/>
diff --git a/python/plugins/MetaSearch/util.py b/python/plugins/MetaSearch/util.py
index 6633775b5e..aa50904bb9 100644
--- a/python/plugins/MetaSearch/util.py
+++ b/python/plugins/MetaSearch/util.py
@@ -142,10 +142,10 @@ def get_help_url():
     else:
         version = '.'.join([major, minor])
 
-    path = '%s/%s/docs/user_manual/plugins/plugins_metasearch.html' % \
+    path = '%s/%s/docs/user_manual/plugins/core_plugins/plugins_metasearch.html' % \
            (version, locale_name)
 
-    return '/'.join(['http://docs.qgis.org', path])
+    return '/'.join(['https://docs.qgis.org', path])
 
 
 def open_url(url):
diff --git a/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py b/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py
index 165b7ee497..980046ff1d 100644
--- a/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py
+++ b/python/plugins/db_manager/db_plugins/oracle/sql_dictionary.py
@@ -27,7 +27,7 @@ __author__ = 'Médéric RIBREUX'
 __date__ = 'August 2014'
 __copyright__ = '(C) 2014, Médéric RIBREUX'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # keywords
 keywords = [
diff --git a/python/plugins/db_manager/db_plugins/plugin.py b/python/plugins/db_manager/db_plugins/plugin.py
index 348a337bdd..4d52c85e38 100644
--- a/python/plugins/db_manager/db_plugins/plugin.py
+++ b/python/plugins/db_manager/db_plugins/plugin.py
@@ -27,7 +27,12 @@ from qgis.PyQt.QtWidgets import QApplication, QAction, QMenu, QInputDialog, QMes
 from qgis.PyQt.QtGui import QKeySequence, QIcon
 
 from qgis.gui import QgsMessageBar
-from qgis.core import Qgis, QgsApplication, QgsSettings
+from qgis.core import (
+    Qgis,
+    QgsApplication,
+    QgsSettings,
+    QgsWkbTypes
+)
 from ..db_plugins import createDbPlugin
 
 
@@ -517,8 +522,28 @@ class Database(DbItemObject):
     def tables(self, schema=None, sys_tables=False):
         tables = self.connector.getTables(schema.name if schema else None, sys_tables)
         if tables is not None:
-            tables = [self.tablesFactory(x, self, schema) for x in tables]
-        return tables
+            ret = []
+            for t in tables:
+                table = self.tablesFactory(t, self, schema)
+                ret.append(table)
+
+                # Similarly to what to browser does, if the geom type is generic geometry,
+                # we additionnly add three copies of the layer to allow importing
+                if isinstance(table, VectorTable):
+                    if table.geomType == 'GEOMETRY':
+                        point_table = self.tablesFactory(t, self, schema)
+                        point_table.geomType = 'POINT'
+                        ret.append(point_table)
+
+                        line_table = self.tablesFactory(t, self, schema)
+                        line_table.geomType = 'LINESTRING'
+                        ret.append(line_table)
+
+                        poly_table = self.tablesFactory(t, self, schema)
+                        poly_table.geomType = 'POLYGON'
+                        ret.append(poly_table)
+
+        return ret
 
     def createTable(self, table, fields, schema=None):
         field_defs = [x.definition() for x in fields]
@@ -683,6 +708,13 @@ class Table(DbItemObject):
         geomCol = self.geomColumn if self.type in [Table.VectorType, Table.RasterType] else ""
         uniqueCol = self.getValidQgisUniqueFields(True) if self.isView else None
         uri.setDataSource(schema, self.name, geomCol if geomCol else None, None, uniqueCol.name if uniqueCol else "")
+        uri.setSrid(str(self.srid))
+        for f in self.fields():
+            if f.primaryKey:
+                uri.setKeyColumn(f.name)
+                break
+        uri.setWkbType(QgsWkbTypes.parseType(self.geomType))
+
         return uri
 
     def mimeUri(self):
diff --git a/python/plugins/db_manager/db_plugins/postgis/connector_test.py b/python/plugins/db_manager/db_plugins/postgis/connector_test.py
index 82055410d4..ab7879f256 100644
--- a/python/plugins/db_manager/db_plugins/postgis/connector_test.py
+++ b/python/plugins/db_manager/db_plugins/postgis/connector_test.py
@@ -21,7 +21,7 @@ __author__ = 'Sandro Santilli'
 __date__ = 'May 2017'
 __copyright__ = '(C) 2017, Sandro Santilli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import qgis
diff --git a/python/plugins/db_manager/db_plugins/postgis/plugin_test.py b/python/plugins/db_manager/db_plugins/postgis/plugin_test.py
index 08960473fd..7ac42f5421 100644
--- a/python/plugins/db_manager/db_plugins/postgis/plugin_test.py
+++ b/python/plugins/db_manager/db_plugins/postgis/plugin_test.py
@@ -21,7 +21,7 @@ __author__ = 'Sandro Santilli'
 __date__ = 'May 2017'
 __copyright__ = '(C) 2017, Sandro Santilli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py b/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py
index 0f0c73b988..fa7b63de6a 100644
--- a/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py
+++ b/python/plugins/db_manager/db_plugins/postgis/sql_dictionary.py
@@ -22,7 +22,7 @@ __author__ = 'Giuseppe Sucameli'
 __date__ = 'April 2012'
 __copyright__ = '(C) 2012, Giuseppe Sucameli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # keywords
 keywords = [
diff --git a/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py b/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py
index e0a99ddde4..40bbbbcccc 100644
--- a/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py
+++ b/python/plugins/db_manager/db_plugins/spatialite/sql_dictionary.py
@@ -22,7 +22,7 @@ __author__ = 'Giuseppe Sucameli'
 __date__ = 'April 2012'
 __copyright__ = '(C) 2012, Giuseppe Sucameli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # keywords
 keywords = [
diff --git a/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py b/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py
index 9fb0d1aa4b..1b740a7e57 100644
--- a/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py
+++ b/python/plugins/db_manager/db_plugins/vlayers/sql_dictionary.py
@@ -22,7 +22,7 @@ __author__ = 'Hugo Mercier'
 __date__ = 'December 2015'
 __copyright__ = '(C) 2015, Hugo Mercier'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 # keywords
diff --git a/python/plugins/db_manager/dlg_field_properties.py b/python/plugins/db_manager/dlg_field_properties.py
index 93f715d27f..2aeb94bdec 100644
--- a/python/plugins/db_manager/dlg_field_properties.py
+++ b/python/plugins/db_manager/dlg_field_properties.py
@@ -22,7 +22,7 @@ __author__ = 'Giuseppe Sucameli'
 __date__ = 'April 2012'
 __copyright__ = '(C) 2012, Giuseppe Sucameli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtWidgets import QDialog, QMessageBox
 
diff --git a/python/plugins/db_manager/dlg_import_vector.py b/python/plugins/db_manager/dlg_import_vector.py
index dd65310636..e8abea7a01 100644
--- a/python/plugins/db_manager/dlg_import_vector.py
+++ b/python/plugins/db_manager/dlg_import_vector.py
@@ -70,6 +70,7 @@ class DlgImportVector(QDialog, Ui_Dialog):
         self.cboSchema.currentIndexChanged.connect(self.populateTables)
         self.widgetSourceSrid.setCrs(QgsProject.instance().crs())
         self.widgetTargetSrid.setCrs(QgsProject.instance().crs())
+        self.updateInputLayer()
 
     def setupWorkingMode(self, mode):
         """ hide the widget to select a layer/file if the input layer is already set """
diff --git a/python/plugins/db_manager/sql_dictionary.py b/python/plugins/db_manager/sql_dictionary.py
index cf04ef84ca..d6484a8a0d 100644
--- a/python/plugins/db_manager/sql_dictionary.py
+++ b/python/plugins/db_manager/sql_dictionary.py
@@ -21,7 +21,7 @@ __author__ = 'Giuseppe Sucameli'
 __date__ = 'April 2012'
 __copyright__ = '(C) 2012, Giuseppe Sucameli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # GENERIC SQL DICTIONARY
 
diff --git a/python/plugins/db_manager/sqledit.py b/python/plugins/db_manager/sqledit.py
index c62afcd31a..179513afd8 100644
--- a/python/plugins/db_manager/sqledit.py
+++ b/python/plugins/db_manager/sqledit.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import Qt
 from qgis.PyQt.QtGui import QColor, QFont, QKeySequence
diff --git a/python/plugins/processing/ProcessingPlugin.py b/python/plugins/processing/ProcessingPlugin.py
index 31579d1cd6..abb1279712 100644
--- a/python/plugins/processing/ProcessingPlugin.py
+++ b/python/plugins/processing/ProcessingPlugin.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import shutil
 import os
diff --git a/python/plugins/processing/__init__.py b/python/plugins/processing/__init__.py
index 9ba0e2dbf3..8e2e66f829 100644
--- a/python/plugins/processing/__init__.py
+++ b/python/plugins/processing/__init__.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from processing.tools.dataobjects import *          # NOQA
 from processing.tools.general import *              # NOQA
diff --git a/python/plugins/processing/algs/exampleprovider/ExampleAlgorithm.py b/python/plugins/processing/algs/exampleprovider/ExampleAlgorithm.py
index 231ed15126..22e3c2e53f 100644
--- a/python/plugins/processing/algs/exampleprovider/ExampleAlgorithm.py
+++ b/python/plugins/processing/algs/exampleprovider/ExampleAlgorithm.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsVectorFileWriter, QgsSettings, QgsProcessingUtils
 
diff --git a/python/plugins/processing/algs/exampleprovider/ExampleAlgorithmProvider.py b/python/plugins/processing/algs/exampleprovider/ExampleAlgorithmProvider.py
index e76ee9af55..e2d7f6fe32 100644
--- a/python/plugins/processing/algs/exampleprovider/ExampleAlgorithmProvider.py
+++ b/python/plugins/processing/algs/exampleprovider/ExampleAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingProvider
 from processing.core.ProcessingConfig import Setting, ProcessingConfig
diff --git a/python/plugins/processing/algs/exampleprovider/ProcessingExampleProviderPlugin.py b/python/plugins/processing/algs/exampleprovider/ProcessingExampleProviderPlugin.py
index f2949e6bc5..40d105a331 100644
--- a/python/plugins/processing/algs/exampleprovider/ProcessingExampleProviderPlugin.py
+++ b/python/plugins/processing/algs/exampleprovider/ProcessingExampleProviderPlugin.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import sys
diff --git a/python/plugins/processing/algs/exampleprovider/__init__.py b/python/plugins/processing/algs/exampleprovider/__init__.py
index 81f1696236..01181506c1 100644
--- a/python/plugins/processing/algs/exampleprovider/__init__.py
+++ b/python/plugins/processing/algs/exampleprovider/__init__.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from exampleprovider.ProcessingExampleProviderPlugin import ProcessingExampleProviderPlugin
 
diff --git a/python/plugins/processing/algs/gdal/AssignProjection.py b/python/plugins/processing/algs/gdal/AssignProjection.py
index 95488d3ad5..326fc7e3d5 100644
--- a/python/plugins/processing/algs/gdal/AssignProjection.py
+++ b/python/plugins/processing/algs/gdal/AssignProjection.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/Buffer.py b/python/plugins/processing/algs/gdal/Buffer.py
index 0ac9140254..14f1922dce 100644
--- a/python/plugins/processing/algs/gdal/Buffer.py
+++ b/python/plugins/processing/algs/gdal/Buffer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Giovanni Manghi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingParameterDistance,
diff --git a/python/plugins/processing/algs/gdal/ClipRasterByExtent.py b/python/plugins/processing/algs/gdal/ClipRasterByExtent.py
index f5d7da0132..1968230a57 100644
--- a/python/plugins/processing/algs/gdal/ClipRasterByExtent.py
+++ b/python/plugins/processing/algs/gdal/ClipRasterByExtent.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -54,12 +54,13 @@ class ClipRasterByExtent(GdalAlgorithm):
     DATA_TYPE = 'DATA_TYPE'
     OUTPUT = 'OUTPUT'
 
-    TYPES = ['Use input layer data type', 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
-
     def __init__(self):
         super().__init__()
 
     def initAlgorithm(self, config=None):
+
+        self.TYPES = [self.tr('Use Input Layer Data Type'), 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
+
         self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT,
                                                             self.tr('Input layer')))
         self.addParameter(QgsProcessingParameterExtent(self.EXTENT,
diff --git a/python/plugins/processing/algs/gdal/ClipRasterByMask.py b/python/plugins/processing/algs/gdal/ClipRasterByMask.py
index 56d6f5cc0b..841b88aab0 100644
--- a/python/plugins/processing/algs/gdal/ClipRasterByMask.py
+++ b/python/plugins/processing/algs/gdal/ClipRasterByMask.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -58,12 +58,13 @@ class ClipRasterByMask(GdalAlgorithm):
     DATA_TYPE = 'DATA_TYPE'
     OUTPUT = 'OUTPUT'
 
-    TYPES = ['Use input layer data type', 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
-
     def __init__(self):
         super().__init__()
 
     def initAlgorithm(self, config=None):
+
+        self.TYPES = [self.tr('Use Input Layer Data Type'), 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
+
         self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT,
                                                             self.tr('Input layer')))
         self.addParameter(QgsProcessingParameterFeatureSource(self.MASK,
diff --git a/python/plugins/processing/algs/gdal/ClipVectorByExtent.py b/python/plugins/processing/algs/gdal/ClipVectorByExtent.py
index fb97db04ee..c432cd8731 100644
--- a/python/plugins/processing/algs/gdal/ClipVectorByExtent.py
+++ b/python/plugins/processing/algs/gdal/ClipVectorByExtent.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsVectorLayer,
                        QgsProcessing,
diff --git a/python/plugins/processing/algs/gdal/ClipVectorByMask.py b/python/plugins/processing/algs/gdal/ClipVectorByMask.py
index bbf102c43c..46a8d751e9 100644
--- a/python/plugins/processing/algs/gdal/ClipVectorByMask.py
+++ b/python/plugins/processing/algs/gdal/ClipVectorByMask.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingAlgorithm,
diff --git a/python/plugins/processing/algs/gdal/ColorRelief.py b/python/plugins/processing/algs/gdal/ColorRelief.py
index 8c9d0b3ead..6dcc99b279 100644
--- a/python/plugins/processing/algs/gdal/ColorRelief.py
+++ b/python/plugins/processing/algs/gdal/ColorRelief.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.core import (QgsRasterFileWriter,
diff --git a/python/plugins/processing/algs/gdal/Dissolve.py b/python/plugins/processing/algs/gdal/Dissolve.py
index 79385b320c..dd82f0fbc3 100644
--- a/python/plugins/processing/algs/gdal/Dissolve.py
+++ b/python/plugins/processing/algs/gdal/Dissolve.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Giovanni Manghi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingException,
                        QgsProcessingParameterDefinition,
diff --git a/python/plugins/processing/algs/gdal/ExecuteSql.py b/python/plugins/processing/algs/gdal/ExecuteSql.py
index 7d02a666ad..dfe5a1cf31 100644
--- a/python/plugins/processing/algs/gdal/ExecuteSql.py
+++ b/python/plugins/processing/algs/gdal/ExecuteSql.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (QgsProcessingException,
diff --git a/python/plugins/processing/algs/gdal/GdalAlgorithm.py b/python/plugins/processing/algs/gdal/GdalAlgorithm.py
index 4e615f1f94..b3f4107026 100644
--- a/python/plugins/processing/algs/gdal/GdalAlgorithm.py
+++ b/python/plugins/processing/algs/gdal/GdalAlgorithm.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py b/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py
index 2adab75115..5951ec9ba3 100644
--- a/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py
+++ b/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 from qgis.PyQt.QtWidgets import (QWidget,
diff --git a/python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py b/python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py
index 944f581b0e..35b758e0bf 100644
--- a/python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py
+++ b/python/plugins/processing/algs/gdal/GdalAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/GdalUtils.py b/python/plugins/processing/algs/gdal/GdalUtils.py
index 8a36e631d1..d78ee5d23e 100644
--- a/python/plugins/processing/algs/gdal/GdalUtils.py
+++ b/python/plugins/processing/algs/gdal/GdalUtils.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import subprocess
diff --git a/python/plugins/processing/algs/gdal/GridAverage.py b/python/plugins/processing/algs/gdal/GridAverage.py
index f385453daf..dd81144b5c 100644
--- a/python/plugins/processing/algs/gdal/GridAverage.py
+++ b/python/plugins/processing/algs/gdal/GridAverage.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/GridDataMetrics.py b/python/plugins/processing/algs/gdal/GridDataMetrics.py
index 7c97fe00ea..8ebce505c8 100644
--- a/python/plugins/processing/algs/gdal/GridDataMetrics.py
+++ b/python/plugins/processing/algs/gdal/GridDataMetrics.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/GridInverseDistance.py b/python/plugins/processing/algs/gdal/GridInverseDistance.py
index d84bc4df3b..3f977733a9 100644
--- a/python/plugins/processing/algs/gdal/GridInverseDistance.py
+++ b/python/plugins/processing/algs/gdal/GridInverseDistance.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/GridInverseDistanceNearestNeighbor.py b/python/plugins/processing/algs/gdal/GridInverseDistanceNearestNeighbor.py
index 574eefe389..1e4e867188 100644
--- a/python/plugins/processing/algs/gdal/GridInverseDistanceNearestNeighbor.py
+++ b/python/plugins/processing/algs/gdal/GridInverseDistanceNearestNeighbor.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/GridLinear.py b/python/plugins/processing/algs/gdal/GridLinear.py
index 72b4862d64..7cf2a7b2a8 100644
--- a/python/plugins/processing/algs/gdal/GridLinear.py
+++ b/python/plugins/processing/algs/gdal/GridLinear.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/GridNearestNeighbor.py b/python/plugins/processing/algs/gdal/GridNearestNeighbor.py
index d8ff610fbc..e725a1ebd6 100644
--- a/python/plugins/processing/algs/gdal/GridNearestNeighbor.py
+++ b/python/plugins/processing/algs/gdal/GridNearestNeighbor.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/OffsetCurve.py b/python/plugins/processing/algs/gdal/OffsetCurve.py
index 7d9c95ca21..5809e28f31 100644
--- a/python/plugins/processing/algs/gdal/OffsetCurve.py
+++ b/python/plugins/processing/algs/gdal/OffsetCurve.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Giovanni Manghi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingParameterDefinition,
diff --git a/python/plugins/processing/algs/gdal/OgrToPostGis.py b/python/plugins/processing/algs/gdal/OgrToPostGis.py
index fb5775caa4..431474f50a 100644
--- a/python/plugins/processing/algs/gdal/OgrToPostGis.py
+++ b/python/plugins/processing/algs/gdal/OgrToPostGis.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingException,
diff --git a/python/plugins/processing/algs/gdal/OneSideBuffer.py b/python/plugins/processing/algs/gdal/OneSideBuffer.py
index f415005bb8..a8544aa8ff 100644
--- a/python/plugins/processing/algs/gdal/OneSideBuffer.py
+++ b/python/plugins/processing/algs/gdal/OneSideBuffer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Giovanni Manghi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingException,
diff --git a/python/plugins/processing/algs/gdal/PointsAlongLines.py b/python/plugins/processing/algs/gdal/PointsAlongLines.py
index 63c9d71f5a..3005f112b8 100644
--- a/python/plugins/processing/algs/gdal/PointsAlongLines.py
+++ b/python/plugins/processing/algs/gdal/PointsAlongLines.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Giovanni Manghi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingException,
                        QgsProcessingParameterFeatureSource,
diff --git a/python/plugins/processing/algs/gdal/aspect.py b/python/plugins/processing/algs/gdal/aspect.py
index 0f78ded5aa..84ac6a4098 100644
--- a/python/plugins/processing/algs/gdal/aspect.py
+++ b/python/plugins/processing/algs/gdal/aspect.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/buildvrt.py b/python/plugins/processing/algs/gdal/buildvrt.py
index 6611a46f24..98235c6f1f 100644
--- a/python/plugins/processing/algs/gdal/buildvrt.py
+++ b/python/plugins/processing/algs/gdal/buildvrt.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Radoslaw Guzinski'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -60,9 +60,6 @@ class buildvrt(GdalAlgorithm):
     RESAMPLING = 'RESAMPLING'
     SRC_NODATA = 'SRC_NODATA'
 
-    RESOLUTION_OPTIONS = ['average', 'highest', 'lowest']
-    RESAMPLING_OPTIONS = ['nearest', 'bilinear', 'cubic', 'cubicspline', 'lanczos', 'average', 'mode']
-
     def __init__(self):
         super().__init__()
 
@@ -83,12 +80,24 @@ class buildvrt(GdalAlgorithm):
             def defaultFileExtension(self):
                 return 'vrt'
 
+        self.RESAMPLING_OPTIONS = ((self.tr('Nearest Neighbour'), 'nearest'),
+                                   (self.tr('Bilinear'), 'bilinear'),
+                                   (self.tr('Cubic Convolution'), 'cubic'),
+                                   (self.tr('B-Spline Convolution'), 'cubicspline'),
+                                   (self.tr('Lanczos Windowed Sinc'), 'lanczos'),
+                                   (self.tr('Average'), 'average'),
+                                   (self.tr('Mode'), 'mode'))
+
+        self.RESOLUTION_OPTIONS = ((self.tr('Average'), 'average'),
+                                   (self.tr('Highest'), 'highest'),
+                                   (self.tr('Lowest'), 'lowest'))
+
         self.addParameter(QgsProcessingParameterMultipleLayers(self.INPUT,
                                                                self.tr('Input layers'),
                                                                QgsProcessing.TypeRaster))
         self.addParameter(QgsProcessingParameterEnum(self.RESOLUTION,
                                                      self.tr('Resolution'),
-                                                     options=self.RESOLUTION_OPTIONS,
+                                                     options=[i[0] for i in self.RESOLUTION_OPTIONS],
                                                      defaultValue=0))
         self.addParameter(QgsProcessingParameterBoolean(self.SEPARATE,
                                                         self.tr('Place each input file into a separate band'),
@@ -111,7 +120,7 @@ class buildvrt(GdalAlgorithm):
 
         resampling = QgsProcessingParameterEnum(self.RESAMPLING,
                                                 self.tr('Resampling algorithm'),
-                                                options=self.RESAMPLING_OPTIONS,
+                                                options=[i[0] for i in self.RESAMPLING_OPTIONS],
                                                 defaultValue=0)
         resampling.setFlags(resampling.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
         self.addParameter(resampling)
@@ -146,7 +155,7 @@ class buildvrt(GdalAlgorithm):
     def getConsoleCommands(self, parameters, context, feedback, executing=True):
         arguments = []
         arguments.append('-resolution')
-        arguments.append(self.RESOLUTION_OPTIONS[self.parameterAsEnum(parameters, self.RESOLUTION, context)])
+        arguments.append(self.RESOLUTION_OPTIONS[self.parameterAsEnum(parameters, self.RESOLUTION, context)][1])
         if self.parameterAsBool(parameters, buildvrt.SEPARATE, context):
             arguments.append('-separate')
         if self.parameterAsBool(parameters, buildvrt.PROJ_DIFFERENCE, context):
@@ -158,7 +167,7 @@ class buildvrt(GdalAlgorithm):
             arguments.append('-a_srs')
             arguments.append(GdalUtils.gdal_crs_string(crs))
         arguments.append('-r')
-        arguments.append(self.RESAMPLING_OPTIONS[self.parameterAsEnum(parameters, self.RESAMPLING, context)])
+        arguments.append(self.RESAMPLING_OPTIONS[self.parameterAsEnum(parameters, self.RESAMPLING, context)][1])
 
         if self.SRC_NODATA in parameters and parameters[self.SRC_NODATA] not in (None, ''):
             nodata = self.parameterAsString(parameters, self.SRC_NODATA, context)
diff --git a/python/plugins/processing/algs/gdal/contour.py b/python/plugins/processing/algs/gdal/contour.py
index 8148dbd434..3a0b941a07 100644
--- a/python/plugins/processing/algs/gdal/contour.py
+++ b/python/plugins/processing/algs/gdal/contour.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/extractprojection.py b/python/plugins/processing/algs/gdal/extractprojection.py
index 8f9071df4d..375a20719e 100644
--- a/python/plugins/processing/algs/gdal/extractprojection.py
+++ b/python/plugins/processing/algs/gdal/extractprojection.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/fillnodata.py b/python/plugins/processing/algs/gdal/fillnodata.py
index 788c056742..f3055ac9cd 100644
--- a/python/plugins/processing/algs/gdal/fillnodata.py
+++ b/python/plugins/processing/algs/gdal/fillnodata.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/gdal2tiles.py b/python/plugins/processing/algs/gdal/gdal2tiles.py
index 3306fe90e3..e0656d7dae 100644
--- a/python/plugins/processing/algs/gdal/gdal2tiles.py
+++ b/python/plugins/processing/algs/gdal/gdal2tiles.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (QgsProcessingAlgorithm,
diff --git a/python/plugins/processing/algs/gdal/gdal2xyz.py b/python/plugins/processing/algs/gdal/gdal2xyz.py
index 8ddd9ea8c4..407b9ce28f 100644
--- a/python/plugins/processing/algs/gdal/gdal2xyz.py
+++ b/python/plugins/processing/algs/gdal/gdal2xyz.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingAlgorithm,
                        QgsProcessingException,
diff --git a/python/plugins/processing/algs/gdal/gdaladdo.py b/python/plugins/processing/algs/gdal/gdaladdo.py
index 3c64f898bf..ae08d514eb 100644
--- a/python/plugins/processing/algs/gdal/gdaladdo.py
+++ b/python/plugins/processing/algs/gdal/gdaladdo.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/gdalcalc.py b/python/plugins/processing/algs/gdal/gdalcalc.py
index c4b8f95745..1b20304cc7 100644
--- a/python/plugins/processing/algs/gdal/gdalcalc.py
+++ b/python/plugins/processing/algs/gdal/gdalcalc.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Giovanni Manghi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingException,
                        QgsProcessingParameterDefinition,
diff --git a/python/plugins/processing/algs/gdal/gdalinfo.py b/python/plugins/processing/algs/gdal/gdalinfo.py
index 800459caff..634914ded9 100644
--- a/python/plugins/processing/algs/gdal/gdalinfo.py
+++ b/python/plugins/processing/algs/gdal/gdalinfo.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/gdaltindex.py b/python/plugins/processing/algs/gdal/gdaltindex.py
index 1bf98be466..6c74482f26 100644
--- a/python/plugins/processing/algs/gdal/gdaltindex.py
+++ b/python/plugins/processing/algs/gdal/gdaltindex.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Pedro Venancio'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/hillshade.py b/python/plugins/processing/algs/gdal/hillshade.py
index 13a7733bc6..17819a5113 100644
--- a/python/plugins/processing/algs/gdal/hillshade.py
+++ b/python/plugins/processing/algs/gdal/hillshade.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/merge.py b/python/plugins/processing/algs/gdal/merge.py
index 0cbd7cd9cc..277be10c39 100644
--- a/python/plugins/processing/algs/gdal/merge.py
+++ b/python/plugins/processing/algs/gdal/merge.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/nearblack.py b/python/plugins/processing/algs/gdal/nearblack.py
index 67804354a7..968b84416c 100644
--- a/python/plugins/processing/algs/gdal/nearblack.py
+++ b/python/plugins/processing/algs/gdal/nearblack.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/ogr2ogr.py b/python/plugins/processing/algs/gdal/ogr2ogr.py
index 063720e6ec..ac9aad107f 100644
--- a/python/plugins/processing/algs/gdal/ogr2ogr.py
+++ b/python/plugins/processing/algs/gdal/ogr2ogr.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/ogr2ogrtabletopostgislist.py b/python/plugins/processing/algs/gdal/ogr2ogrtabletopostgislist.py
index c31066f2e3..1349978d3a 100644
--- a/python/plugins/processing/algs/gdal/ogr2ogrtabletopostgislist.py
+++ b/python/plugins/processing/algs/gdal/ogr2ogrtabletopostgislist.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsSettings
 
diff --git a/python/plugins/processing/algs/gdal/ogr2ogrtopostgislist.py b/python/plugins/processing/algs/gdal/ogr2ogrtopostgislist.py
index 32c648fd9d..e014b9b4b7 100644
--- a/python/plugins/processing/algs/gdal/ogr2ogrtopostgislist.py
+++ b/python/plugins/processing/algs/gdal/ogr2ogrtopostgislist.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingParameterFeatureSource,
diff --git a/python/plugins/processing/algs/gdal/ogrinfo.py b/python/plugins/processing/algs/gdal/ogrinfo.py
index c7de5cdfe8..71db6f848c 100644
--- a/python/plugins/processing/algs/gdal/ogrinfo.py
+++ b/python/plugins/processing/algs/gdal/ogrinfo.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (QgsProcessingException,
diff --git a/python/plugins/processing/algs/gdal/pct2rgb.py b/python/plugins/processing/algs/gdal/pct2rgb.py
index 89a43ef7b5..f4d6ae24ae 100644
--- a/python/plugins/processing/algs/gdal/pct2rgb.py
+++ b/python/plugins/processing/algs/gdal/pct2rgb.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/polygonize.py b/python/plugins/processing/algs/gdal/polygonize.py
index 41ab9f5503..97e7585623 100644
--- a/python/plugins/processing/algs/gdal/polygonize.py
+++ b/python/plugins/processing/algs/gdal/polygonize.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/proximity.py b/python/plugins/processing/algs/gdal/proximity.py
index 83cb6105d1..e71aa0cd6c 100644
--- a/python/plugins/processing/algs/gdal/proximity.py
+++ b/python/plugins/processing/algs/gdal/proximity.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/rasterize.py b/python/plugins/processing/algs/gdal/rasterize.py
index d76e0bf844..7043b758ed 100644
--- a/python/plugins/processing/algs/gdal/rasterize.py
+++ b/python/plugins/processing/algs/gdal/rasterize.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/rasterize_over.py b/python/plugins/processing/algs/gdal/rasterize_over.py
index 9928d884c0..8d5ca33deb 100644
--- a/python/plugins/processing/algs/gdal/rasterize_over.py
+++ b/python/plugins/processing/algs/gdal/rasterize_over.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/rearrange_bands.py b/python/plugins/processing/algs/gdal/rearrange_bands.py
index 9ade547ebb..fa7f796d2c 100644
--- a/python/plugins/processing/algs/gdal/rearrange_bands.py
+++ b/python/plugins/processing/algs/gdal/rearrange_bands.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Mathieu Pellerin'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
@@ -52,12 +52,13 @@ class rearrange_bands(GdalAlgorithm):
     DATA_TYPE = 'DATA_TYPE'
     OUTPUT = 'OUTPUT'
 
-    TYPES = ['Use input layer data type', 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
-
     def __init__(self):
         super().__init__()
 
     def initAlgorithm(self, config=None):
+
+        self.TYPES = [self.tr('Use Input Layer Data Type'), 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
+
         self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer')))
         self.addParameter(QgsProcessingParameterBand(self.BANDS,
                                                      self.tr('Selected band(s)'),
diff --git a/python/plugins/processing/algs/gdal/retile.py b/python/plugins/processing/algs/gdal/retile.py
index a0db8fca91..224b2f81d8 100644
--- a/python/plugins/processing/algs/gdal/retile.py
+++ b/python/plugins/processing/algs/gdal/retile.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingParameterDefinition,
@@ -65,11 +65,11 @@ class retile(GdalAlgorithm):
         super().__init__()
 
     def initAlgorithm(self, config=None):
-        self.methods = ((self.tr('Nearest neighbour'), 'near'),
+        self.methods = ((self.tr('Nearest Neighbour'), 'near'),
                         (self.tr('Bilinear'), 'bilinear'),
                         (self.tr('Cubic'), 'cubic'),
-                        (self.tr('Cubic spline'), 'cubicspline'),
-                        (self.tr('Lanczos windowed sinc'), 'lanczos'),)
+                        (self.tr('Cubic Spline'), 'cubicspline'),
+                        (self.tr('Lanczos Windowed Sinc'), 'lanczos'),)
 
         self.addParameter(QgsProcessingParameterMultipleLayers(self.INPUT,
                                                                self.tr('Input files'),
diff --git a/python/plugins/processing/algs/gdal/rgb2pct.py b/python/plugins/processing/algs/gdal/rgb2pct.py
index 8b754ce3c9..0b370ab484 100644
--- a/python/plugins/processing/algs/gdal/rgb2pct.py
+++ b/python/plugins/processing/algs/gdal/rgb2pct.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/roughness.py b/python/plugins/processing/algs/gdal/roughness.py
index a329545b2f..37b278851d 100644
--- a/python/plugins/processing/algs/gdal/roughness.py
+++ b/python/plugins/processing/algs/gdal/roughness.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/sieve.py b/python/plugins/processing/algs/gdal/sieve.py
index e553340398..e8491c39e8 100644
--- a/python/plugins/processing/algs/gdal/sieve.py
+++ b/python/plugins/processing/algs/gdal/sieve.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/slope.py b/python/plugins/processing/algs/gdal/slope.py
index 4d55312837..29ba30eaf4 100644
--- a/python/plugins/processing/algs/gdal/slope.py
+++ b/python/plugins/processing/algs/gdal/slope.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/tpi.py b/python/plugins/processing/algs/gdal/tpi.py
index 547a7fa729..75e6061b0f 100644
--- a/python/plugins/processing/algs/gdal/tpi.py
+++ b/python/plugins/processing/algs/gdal/tpi.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/gdal/translate.py b/python/plugins/processing/algs/gdal/translate.py
index 40b31d63ea..36f3c2a634 100644
--- a/python/plugins/processing/algs/gdal/translate.py
+++ b/python/plugins/processing/algs/gdal/translate.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -55,12 +55,13 @@ class translate(GdalAlgorithm):
     DATA_TYPE = 'DATA_TYPE'
     OUTPUT = 'OUTPUT'
 
-    TYPES = ['Use input layer data type', 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
-
     def __init__(self):
         super().__init__()
 
     def initAlgorithm(self, config=None):
+
+        self.TYPES = [self.tr('Use Input Layer Data Type'), 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
+
         self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer')))
         self.addParameter(QgsProcessingParameterCrs(self.TARGET_CRS,
                                                     self.tr('Override the projection for the output file'),
diff --git a/python/plugins/processing/algs/gdal/tri.py b/python/plugins/processing/algs/gdal/tri.py
index ba86a9389c..37b3bfd947 100644
--- a/python/plugins/processing/algs/gdal/tri.py
+++ b/python/plugins/processing/algs/gdal/tri.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/gdal/ui/RasterOptionsWidget.py b/python/plugins/processing/algs/gdal/ui/RasterOptionsWidget.py
index 828aa564b8..4ad1b66130 100644
--- a/python/plugins/processing/algs/gdal/ui/RasterOptionsWidget.py
+++ b/python/plugins/processing/algs/gdal/ui/RasterOptionsWidget.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtWidgets import QLineEdit, QComboBox
 from qgis.gui import QgsRasterFormatSaveOptionsWidget
diff --git a/python/plugins/processing/algs/gdal/warp.py b/python/plugins/processing/algs/gdal/warp.py
index 5a5618857d..73ad679b16 100644
--- a/python/plugins/processing/algs/gdal/warp.py
+++ b/python/plugins/processing/algs/gdal/warp.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -63,24 +63,24 @@ class warp(GdalAlgorithm):
     EXTRA = 'EXTRA'
     OUTPUT = 'OUTPUT'
 
-    TYPES = ['Use input layer data type', 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
-
     def __init__(self):
         super().__init__()
 
     def initAlgorithm(self, config=None):
-        self.methods = ((self.tr('Nearest neighbour'), 'near'),
+        self.methods = ((self.tr('Nearest Neighbour'), 'near'),
                         (self.tr('Bilinear'), 'bilinear'),
                         (self.tr('Cubic'), 'cubic'),
-                        (self.tr('Cubic spline'), 'cubicspline'),
-                        (self.tr('Lanczos windowed sinc'), 'lanczos'),
+                        (self.tr('Cubic Spline'), 'cubicspline'),
+                        (self.tr('Lanczos Windowed Sinc'), 'lanczos'),
                         (self.tr('Average'), 'average'),
                         (self.tr('Mode'), 'mode'),
                         (self.tr('Maximum'), 'max'),
                         (self.tr('Minimum'), 'min'),
                         (self.tr('Median'), 'med'),
-                        (self.tr('First quartile'), 'q1'),
-                        (self.tr('Third quartile'), 'q3'))
+                        (self.tr('First Quartile'), 'q1'),
+                        (self.tr('Third Quartile'), 'q3'))
+
+        self.TYPES = [self.tr('Use Input Layer Data Type'), 'Byte', 'Int16', 'UInt16', 'UInt32', 'Int32', 'Float32', 'Float64', 'CInt16', 'CInt32', 'CFloat32', 'CFloat64']
 
         self.addParameter(QgsProcessingParameterRasterLayer(self.INPUT, self.tr('Input layer')))
         self.addParameter(QgsProcessingParameterCrs(self.SOURCE_CRS,
diff --git a/python/plugins/processing/algs/grass7/Grass7Algorithm.py b/python/plugins/processing/algs/grass7/Grass7Algorithm.py
index c7e37056a1..136d7fff45 100644
--- a/python/plugins/processing/algs/grass7/Grass7Algorithm.py
+++ b/python/plugins/processing/algs/grass7/Grass7Algorithm.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012-2015, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 import os
diff --git a/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py b/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py
index d0df662f4c..02ace800a8 100644
--- a/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py
+++ b/python/plugins/processing/algs/grass7/Grass7AlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/python/plugins/processing/algs/grass7/Grass7Utils.py b/python/plugins/processing/algs/grass7/Grass7Utils.py
index 78c3e03ba8..e2b05b4fdb 100644
--- a/python/plugins/processing/algs/grass7/Grass7Utils.py
+++ b/python/plugins/processing/algs/grass7/Grass7Utils.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014-2015, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import stat
 import shutil
diff --git a/python/plugins/processing/algs/grass7/description/r.in.lidar.info.txt b/python/plugins/processing/algs/grass7/description/r.in.lidar.info.txt
index 58ceef4a95..785a5af3c9 100644
--- a/python/plugins/processing/algs/grass7/description/r.in.lidar.info.txt
+++ b/python/plugins/processing/algs/grass7/description/r.in.lidar.info.txt
@@ -1,7 +1,7 @@
 r.in.lidar
 r.in.lidar.info - Extract information from LAS file
 Raster (r.*)
-QgsProcessingParameterFile|input|LAS input file|QgsProcessingParameterFile.File|txt|None|False
+QgsProcessingParameterFile|input|LAS input file|QgsProcessingParameterFile.File|las|None|False
 Hardcoded|-p
 Hardcoded|-g
 Hardcoded|-s
diff --git a/python/plugins/processing/algs/grass7/description/r.sun.txt b/python/plugins/processing/algs/grass7/description/r.sun.incidout.txt
similarity index 88%
rename from python/plugins/processing/algs/grass7/description/r.sun.txt
rename to python/plugins/processing/algs/grass7/description/r.sun.incidout.txt
index 6751571fc6..bf26dda6ab 100644
--- a/python/plugins/processing/algs/grass7/description/r.sun.txt
+++ b/python/plugins/processing/algs/grass7/description/r.sun.incidout.txt
@@ -1,5 +1,5 @@
 r.sun
-Solar irradiance and irradiation model.
+r.sun.incidout - Solar irradiance and irradiation model ( for the set local time).
 Raster (r.*)
 QgsProcessingParameterRasterLayer|elevation|Elevation layer [meters]|None|False
 QgsProcessingParameterRasterLayer|aspect|Aspect layer [decimal degrees]|None|False
@@ -21,11 +21,11 @@ QgsProcessingParameterNumber|day|No. of day of the year (1-365)|QgsProcessingPar
 *QgsProcessingParameterNumber|distance_step|Sampling distance step coefficient (0.5-1.5)|QgsProcessingParameterNumber.Double|1.0|True|0.5|1.5
 *QgsProcessingParameterNumber|npartitions|Read the input files in this number of chunks|QgsProcessingParameterNumber.Integer|1|True|1|None
 *QgsProcessingParameterNumber|civil_time|Civil time zone value, if none, the time will be local solar time|QgsProcessingParameterNumber.Double|None|True|0.0|None
+QgsProcessingParameterNumber|time|Local (solar) time (decimal hours)|QgsProcessingParameterNumber.Double|None|False|0.0|24.0
 QgsProcessingParameterBoolean|-p|Do not incorporate the shadowing effect of terrain|False
 *QgsProcessingParameterBoolean|-m|Use the low-memory version of the program|False
-QgsProcessingParameterRasterDestination|incidout|incidence angle raster map|None|True 
-QgsProcessingParameterRasterDestination|beam_rad|Irradiation [Wh.m-2.day-1]|None|True
-QgsProcessingParameterRasterDestination|insol_time|Insolation time [h] |None|True
-QgsProcessingParameterRasterDestination|diff_rad|Diffuse irradiation [Wh.m-2.day-1]|None|True
-QgsProcessingParameterRasterDestination|refl_rad|Ground reflected irradiation [Wh.m-2.day-1]|None|True 
-QgsProcessingParameterRasterDestination|glob_rad|Global (total) irradiance/irradiation [Wh.m-2.day-1]|None|True
+QgsProcessingParameterRasterDestination|incidout|incidence angle raster map|None|True
+QgsProcessingParameterRasterDestination|beam_rad|Beam irradiance [W.m-2]|None|True
+QgsProcessingParameterRasterDestination|diff_rad|Diffuse irradiance [W.m-2]|None|True
+QgsProcessingParameterRasterDestination|refl_rad|Ground reflected irradiance [W.m-2]|None|True
+QgsProcessingParameterRasterDestination|glob_rad|Global (total) irradiance/irradiation [W.m-2]|None|True
diff --git a/python/plugins/processing/algs/grass7/description/r.sun.insoltime.txt b/python/plugins/processing/algs/grass7/description/r.sun.insoltime.txt
new file mode 100644
index 0000000000..280ffdedf6
--- /dev/null
+++ b/python/plugins/processing/algs/grass7/description/r.sun.insoltime.txt
@@ -0,0 +1,30 @@
+r.sun
+r.sun.insoltime - Solar irradiance and irradiation model (daily sums).
+Raster (r.*)
+QgsProcessingParameterRasterLayer|elevation|Elevation layer [meters]|None|False
+QgsProcessingParameterRasterLayer|aspect|Aspect layer [decimal degrees]|None|False
+QgsProcessingParameterNumber|aspect_value|A single value of the orientation (aspect), 270 is south|QgsProcessingParameterNumber.Double|270.0|True|0.0|360.0
+QgsProcessingParameterRasterLayer|slope|Name of the input slope raster map (terrain slope or solar panel inclination) [decimal degrees]|None|False
+QgsProcessingParameterNumber|slope_value|A single value of inclination (slope)|QgsProcessingParameterNumber.Double|0.0|True|0.0|360.0
+QgsProcessingParameterRasterLayer|linke|Name of the Linke atmospheric turbidity coefficient input raster map|None|True
+QgsProcessingParameterRasterLayer|albedo|Name of the ground albedo coefficient input raster map|None|True
+QgsProcessingParameterNumber|albedo_value|A single value of the ground albedo coefficient|QgsProcessingParameterNumber.Double|0.2|True|0.0|360.0
+QgsProcessingParameterRasterLayer|lat|Name of input raster map containing latitudes [decimal degrees]|None|True
+QgsProcessingParameterRasterLayer|long|Name of input raster map containing longitudes [decimal degrees]|None|True
+QgsProcessingParameterRasterLayer|coeff_bh|Name of real-sky beam radiation coefficient input raster map|None|True
+QgsProcessingParameterRasterLayer|coeff_dh|Name of real-sky diffuse radiation coefficient input raster map|None|True
+QgsProcessingParameterRasterLayer|horizon_basemap|The horizon information input map basename|None|True
+QgsProcessingParameterNumber|horizon_step|Angle step size for multidirectional horizon [degrees]|QgsProcessingParameterNumber.Double|None|True|0.0|360.0
+QgsProcessingParameterNumber|day|No. of day of the year (1-365)|QgsProcessingParameterNumber.Integer|1|False|1|365
+*QgsProcessingParameterNumber|step|Time step when computing all-day radiation sums [decimal hours]|QgsProcessingParameterNumber.Double|0.5|True|0
+*QgsProcessingParameterNumber|declination|Declination value (overriding the internally computed value) [radians]|QgsProcessingParameterNumber.Double|None|True|None|None
+*QgsProcessingParameterNumber|distance_step|Sampling distance step coefficient (0.5-1.5)|QgsProcessingParameterNumber.Double|1.0|True|0.5|1.5
+*QgsProcessingParameterNumber|npartitions|Read the input files in this number of chunks|QgsProcessingParameterNumber.Integer|1|True|1|None
+*QgsProcessingParameterNumber|civil_time|Civil time zone value, if none, the time will be local solar time|QgsProcessingParameterNumber.Double|None|True|0.0|None
+QgsProcessingParameterBoolean|-p|Do not incorporate the shadowing effect of terrain|False
+*QgsProcessingParameterBoolean|-m|Use the low-memory version of the program|False
+QgsProcessingParameterRasterDestination|insol_time|Insolation time [h] |None|True
+QgsProcessingParameterRasterDestination|beam_rad|Irradiation raster map [Wh.m-2.day-1]|None|True
+QgsProcessingParameterRasterDestination|diff_rad|Irradiation raster map [Wh.m-2.day-1]|None|True
+QgsProcessingParameterRasterDestination|refl_rad|Irradiation raster map [Wh.m-2.day-1]|None|True
+QgsProcessingParameterRasterDestination|glob_rad|Irradiance/irradiation raster map [Wh.m-2.day-1]|None|True
diff --git a/python/plugins/processing/algs/grass7/description/v.net.distance.txt b/python/plugins/processing/algs/grass7/description/v.net.distance.txt
index 73eb792355..3037d76b2f 100644
--- a/python/plugins/processing/algs/grass7/description/v.net.distance.txt
+++ b/python/plugins/processing/algs/grass7/description/v.net.distance.txt
@@ -13,7 +13,7 @@ QgsProcessingParameterNumber|threshold|Threshold for connecting nodes to the net
 *QgsProcessingParameterString|to_where|To WHERE conditions of SQL statement without 'where' keyword|None|True|True
 *QgsProcessingParameterField|arc_column|Arc forward/both direction(s) cost column (number)|None|input|0|False|True
 *QgsProcessingParameterField|arc_backward_column|Arc backward direction cost column (number)|None|input|0|False|True
-*QgsProcessingParameterField|node_column|Node cost column (number)|None|from_layer|0|False|True
+*QgsProcessingParameterField|node_column|Node cost column (number)|None|flayer|0|False|True
 *QgsProcessingParameterBoolean|-g|Use geodesic calculation for longitude-latitude locations|False|True
 *QgsProcessingParameterBoolean|-l|Write each output path as one line, not as original input segments|False|True
 QgsProcessingParameterVectorDestination|output|Network_Distance
diff --git a/python/plugins/processing/algs/grass7/ext/i.py b/python/plugins/processing/algs/grass7/ext/i.py
index 350c6aab27..8bd65f57ea 100644
--- a/python/plugins/processing/algs/grass7/ext/i.py
+++ b/python/plugins/processing/algs/grass7/ext/i.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.tools.system import (isWindows, getTempFilename)
diff --git a/python/plugins/processing/algs/grass7/ext/i_albedo.py b/python/plugins/processing/algs/grass7/ext/i_albedo.py
index 4d79b6a093..bef287948f 100644
--- a/python/plugins/processing/algs/grass7/ext/i_albedo.py
+++ b/python/plugins/processing/algs/grass7/ext/i_albedo.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_cca.py b/python/plugins/processing/algs/grass7/ext/i_cca.py
index 121cd991c1..276d53b1b8 100644
--- a/python/plugins/processing/algs/grass7/ext/i_cca.py
+++ b/python/plugins/processing/algs/grass7/ext/i_cca.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum, regroupRasters, importSigFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_cluster.py b/python/plugins/processing/algs/grass7/ext/i_cluster.py
index 15ab1ddc39..306cd5639c 100644
--- a/python/plugins/processing/algs/grass7/ext/i_cluster.py
+++ b/python/plugins/processing/algs/grass7/ext/i_cluster.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from .i import regroupRasters, verifyRasterNum, exportSigFile
diff --git a/python/plugins/processing/algs/grass7/ext/i_colors_enhance.py b/python/plugins/processing/algs/grass7/ext/i_colors_enhance.py
index 590f1152cc..e0c0f42fd9 100644
--- a/python/plugins/processing/algs/grass7/ext/i_colors_enhance.py
+++ b/python/plugins/processing/algs/grass7/ext/i_colors_enhance.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import exportInputRasters
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_evapo_mh.py b/python/plugins/processing/algs/grass7/ext/i_evapo_mh.py
index fb03d4fcef..70ab508f6d 100644
--- a/python/plugins/processing/algs/grass7/ext/i_evapo_mh.py
+++ b/python/plugins/processing/algs/grass7/ext/i_evapo_mh.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def checkParameterValuesBeforeExecuting(alg, parameters, context):
diff --git a/python/plugins/processing/algs/grass7/ext/i_gensig.py b/python/plugins/processing/algs/grass7/ext/i_gensig.py
index a4bb0a2896..45f21fc571 100644
--- a/python/plugins/processing/algs/grass7/ext/i_gensig.py
+++ b/python/plugins/processing/algs/grass7/ext/i_gensig.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from .i import regroupRasters, exportSigFile
diff --git a/python/plugins/processing/algs/grass7/ext/i_gensigset.py b/python/plugins/processing/algs/grass7/ext/i_gensigset.py
index e8ef7e3d3c..0adfa16b73 100644
--- a/python/plugins/processing/algs/grass7/ext/i_gensigset.py
+++ b/python/plugins/processing/algs/grass7/ext/i_gensigset.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from .i import regroupRasters, exportSigFile
diff --git a/python/plugins/processing/algs/grass7/ext/i_group.py b/python/plugins/processing/algs/grass7/ext/i_group.py
index 28f3879c05..e82bcab091 100644
--- a/python/plugins/processing/algs/grass7/ext/i_group.py
+++ b/python/plugins/processing/algs/grass7/ext/i_group.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_in_spotvgt.py b/python/plugins/processing/algs/grass7/ext/i_in_spotvgt.py
index c77f8b177d..48b46ba025 100644
--- a/python/plugins/processing/algs/grass7/ext/i_in_spotvgt.py
+++ b/python/plugins/processing/algs/grass7/ext/i_in_spotvgt.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/i_landsat_acca.py b/python/plugins/processing/algs/grass7/ext/i_landsat_acca.py
index b35e1bd1a4..9ec6207ce6 100644
--- a/python/plugins/processing/algs/grass7/ext/i_landsat_acca.py
+++ b/python/plugins/processing/algs/grass7/ext/i_landsat_acca.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum, orderedInput
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_landsat_toar.py b/python/plugins/processing/algs/grass7/ext/i_landsat_toar.py
index ea614e9a31..1c7dd01a1d 100644
--- a/python/plugins/processing/algs/grass7/ext/i_landsat_toar.py
+++ b/python/plugins/processing/algs/grass7/ext/i_landsat_toar.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum, orderedInput
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_maxlik.py b/python/plugins/processing/algs/grass7/ext/i_maxlik.py
index 9798a21a8a..e07f88cf89 100644
--- a/python/plugins/processing/algs/grass7/ext/i_maxlik.py
+++ b/python/plugins/processing/algs/grass7/ext/i_maxlik.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import regroupRasters, importSigFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_oif.py b/python/plugins/processing/algs/grass7/ext/i_oif.py
index d44b839459..6e08fbba59 100644
--- a/python/plugins/processing/algs/grass7/ext/i_oif.py
+++ b/python/plugins/processing/algs/grass7/ext/i_oif.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_pansharpen.py b/python/plugins/processing/algs/grass7/ext/i_pansharpen.py
index 9f7e00a5ae..86d97c379d 100644
--- a/python/plugins/processing/algs/grass7/ext/i_pansharpen.py
+++ b/python/plugins/processing/algs/grass7/ext/i_pansharpen.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.tools.system import getTempFilename
diff --git a/python/plugins/processing/algs/grass7/ext/i_pca.py b/python/plugins/processing/algs/grass7/ext/i_pca.py
index 469fdee458..590a6f031c 100644
--- a/python/plugins/processing/algs/grass7/ext/i_pca.py
+++ b/python/plugins/processing/algs/grass7/ext/i_pca.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_segment.py b/python/plugins/processing/algs/grass7/ext/i_segment.py
index 8ac127bcb3..6e10d7a15c 100644
--- a/python/plugins/processing/algs/grass7/ext/i_segment.py
+++ b/python/plugins/processing/algs/grass7/ext/i_segment.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import regroupRasters
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_smap.py b/python/plugins/processing/algs/grass7/ext/i_smap.py
index d7d8a1b8a4..faa57f1e3f 100644
--- a/python/plugins/processing/algs/grass7/ext/i_smap.py
+++ b/python/plugins/processing/algs/grass7/ext/i_smap.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import regroupRasters, importSigFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/i_tasscap.py b/python/plugins/processing/algs/grass7/ext/i_tasscap.py
index 38d7fc00fe..58abfa704c 100644
--- a/python/plugins/processing/algs/grass7/ext/i_tasscap.py
+++ b/python/plugins/processing/algs/grass7/ext/i_tasscap.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .i import verifyRasterNum
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_blend_combine.py b/python/plugins/processing/algs/grass7/ext/r_blend_combine.py
index 24ec875d27..f12d2ecc8d 100644
--- a/python/plugins/processing/algs/grass7/ext/r_blend_combine.py
+++ b/python/plugins/processing/algs/grass7/ext/r_blend_combine.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/r_blend_rgb.py b/python/plugins/processing/algs/grass7/ext/r_blend_rgb.py
index 8ced036d19..935941e64c 100644
--- a/python/plugins/processing/algs/grass7/ext/r_blend_rgb.py
+++ b/python/plugins/processing/algs/grass7/ext/r_blend_rgb.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/grass7/ext/r_category.py b/python/plugins/processing/algs/grass7/ext/r_category.py
index 5e1becd142..09559eda38 100644
--- a/python/plugins/processing/algs/grass7/ext/r_category.py
+++ b/python/plugins/processing/algs/grass7/ext/r_category.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from processing.tools.system import getTempFilename
 from processing.algs.grass7.Grass7Utils import Grass7Utils
diff --git a/python/plugins/processing/algs/grass7/ext/r_colors.py b/python/plugins/processing/algs/grass7/ext/r_colors.py
index eaed550a7b..b005a0b9ab 100644
--- a/python/plugins/processing/algs/grass7/ext/r_colors.py
+++ b/python/plugins/processing/algs/grass7/ext/r_colors.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.algs.grass7.Grass7Utils import Grass7Utils
diff --git a/python/plugins/processing/algs/grass7/ext/r_colors_stddev.py b/python/plugins/processing/algs/grass7/ext/r_colors_stddev.py
index b8206df2b4..ac825f5d85 100644
--- a/python/plugins/processing/algs/grass7/ext/r_colors_stddev.py
+++ b/python/plugins/processing/algs/grass7/ext/r_colors_stddev.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from processing.algs.grass7.Grass7Utils import Grass7Utils
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_drain.py b/python/plugins/processing/algs/grass7/ext/r_drain.py
index 9f838e1506..1606deab6f 100644
--- a/python/plugins/processing/algs/grass7/ext/r_drain.py
+++ b/python/plugins/processing/algs/grass7/ext/r_drain.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def checkParameterValuesBeforeExecuting(alg, parameters, context):
diff --git a/python/plugins/processing/algs/grass7/ext/r_horizon.py b/python/plugins/processing/algs/grass7/ext/r_horizon.py
index e078188bf7..3435746001 100644
--- a/python/plugins/processing/algs/grass7/ext/r_horizon.py
+++ b/python/plugins/processing/algs/grass7/ext/r_horizon.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 import os
 
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li.py b/python/plugins/processing/algs/grass7/ext/r_li.py
index 9416a8d7ac..add3b20344 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import shutil
 from qgis.core import QgsProcessingParameterString
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_cwed.py b/python/plugins/processing/algs/grass7/ext/r_li_cwed.py
index ef070376f7..e32b87f3ca 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_cwed.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_cwed.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_cwed_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_cwed_ascii.py
index bf3b0aac8b..1f56b016d8 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_cwed_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_cwed_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_dominance.py b/python/plugins/processing/algs/grass7/ext/r_li_dominance.py
index da597fca4f..299cd7d994 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_dominance.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_dominance.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_dominance_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_dominance_ascii.py
index 8706a2a386..2c7e266a6e 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_dominance_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_dominance_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_edgedensity.py b/python/plugins/processing/algs/grass7/ext/r_li_edgedensity.py
index 9ec8804c6d..c3c34c9071 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_edgedensity.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_edgedensity.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_edgedensity_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_edgedensity_ascii.py
index ddb7984005..c8239003fe 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_edgedensity_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_edgedensity_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_mpa.py b/python/plugins/processing/algs/grass7/ext/r_li_mpa.py
index 98258b6365..f5b36478b6 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_mpa.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_mpa.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_mpa_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_mpa_ascii.py
index 4f27b5d60c..85f1513093 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_mpa_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_mpa_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_mps.py b/python/plugins/processing/algs/grass7/ext/r_li_mps.py
index 9f79dba893..367261fd4e 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_mps.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_mps.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_mps_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_mps_ascii.py
index fc8475eb06..1984a60da8 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_mps_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_mps_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_padcv.py b/python/plugins/processing/algs/grass7/ext/r_li_padcv.py
index 7f3fc84aaf..8d41d2f2c0 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_padcv.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_padcv.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_padcv_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_padcv_ascii.py
index 24a475b7cc..b760fe23e2 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_padcv_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_padcv_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_padrange.py b/python/plugins/processing/algs/grass7/ext/r_li_padrange.py
index f1214fe29d..7f50190c50 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_padrange.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_padrange.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_padrange_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_padrange_ascii.py
index 442359be53..6a0d4ab65d 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_padrange_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_padrange_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_padsd.py b/python/plugins/processing/algs/grass7/ext/r_li_padsd.py
index 1c31f2d8fa..de92727899 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_padsd.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_padsd.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_padsd_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_padsd_ascii.py
index 3cf61d719f..d60cdb445b 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_padsd_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_padsd_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_patchdensity.py b/python/plugins/processing/algs/grass7/ext/r_li_patchdensity.py
index dec49d1296..c696dd21bd 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_patchdensity.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_patchdensity.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_patchdensity_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_patchdensity_ascii.py
index 16bad2066b..21f7e82420 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_patchdensity_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_patchdensity_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_patchnum.py b/python/plugins/processing/algs/grass7/ext/r_li_patchnum.py
index ffefb3fdd9..c9f8dc3fb9 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_patchnum.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_patchnum.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_patchnum_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_patchnum_ascii.py
index da7d7983de..d47baeb584 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_patchnum_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_patchnum_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_pielou.py b/python/plugins/processing/algs/grass7/ext/r_li_pielou.py
index e833ac3423..a681ca1f48 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_pielou.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_pielou.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_pielou_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_pielou_ascii.py
index 5f86d7cf47..510a582348 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_pielou_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_pielou_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_renyi.py b/python/plugins/processing/algs/grass7/ext/r_li_renyi.py
index 6c00e18ffb..2445641f82 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_renyi.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_renyi.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_renyi_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_renyi_ascii.py
index 889c54c412..12871c24bc 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_renyi_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_renyi_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_richness.py b/python/plugins/processing/algs/grass7/ext/r_li_richness.py
index 66a31bc7d2..a97e60bb0c 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_richness.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_richness.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_richness_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_richness_ascii.py
index 7cae54c4b3..ae09a4749f 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_richness_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_richness_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_shannon.py b/python/plugins/processing/algs/grass7/ext/r_li_shannon.py
index ea2cc3443f..42cfe970b5 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_shannon.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_shannon.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_shannon_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_shannon_ascii.py
index 617288f477..5875e3a076 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_shannon_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_shannon_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_shape.py b/python/plugins/processing/algs/grass7/ext/r_li_shape.py
index 4f60bbf700..e84f651f43 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_shape.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_shape.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_shape_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_shape_ascii.py
index e1ebd07bf8..44d18e8da0 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_shape_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_shape_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_simpson.py b/python/plugins/processing/algs/grass7/ext/r_li_simpson.py
index 5705975e13..d85622fa08 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_simpson.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_simpson.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_li_simpson_ascii.py b/python/plugins/processing/algs/grass7/ext/r_li_simpson_ascii.py
index c226e09feb..54cecccbc5 100644
--- a/python/plugins/processing/algs/grass7/ext/r_li_simpson_ascii.py
+++ b/python/plugins/processing/algs/grass7/ext/r_li_simpson_ascii.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .r_li import checkMovingWindow, configFile, moveOutputTxtFile
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_mapcalc.py b/python/plugins/processing/algs/grass7/ext/r_mapcalc.py
index 30ffec0600..38dffdcb89 100644
--- a/python/plugins/processing/algs/grass7/ext/r_mapcalc.py
+++ b/python/plugins/processing/algs/grass7/ext/r_mapcalc.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_mask_rast.py b/python/plugins/processing/algs/grass7/ext/r_mask_rast.py
index 13d0d9b851..512ee03bc3 100644
--- a/python/plugins/processing/algs/grass7/ext/r_mask_rast.py
+++ b/python/plugins/processing/algs/grass7/ext/r_mask_rast.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from processing.algs.grass7.Grass7Utils import Grass7Utils
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_mask_vect.py b/python/plugins/processing/algs/grass7/ext/r_mask_vect.py
index c59b3c3389..b4162a7a9f 100644
--- a/python/plugins/processing/algs/grass7/ext/r_mask_vect.py
+++ b/python/plugins/processing/algs/grass7/ext/r_mask_vect.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from processing.algs.grass7.Grass7Utils import Grass7Utils
 
diff --git a/python/plugins/processing/algs/grass7/ext/r_null.py b/python/plugins/processing/algs/grass7/ext/r_null.py
index 1705e50e1b..d7b3a7fc2b 100644
--- a/python/plugins/processing/algs/grass7/ext/r_null.py
+++ b/python/plugins/processing/algs/grass7/ext/r_null.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def checkParameterValuesBeforeExecuting(alg, parameters, context):
diff --git a/python/plugins/processing/algs/grass7/ext/r_proj.py b/python/plugins/processing/algs/grass7/ext/r_proj.py
index fc54ff97c3..903d2ff8d0 100644
--- a/python/plugins/processing/algs/grass7/ext/r_proj.py
+++ b/python/plugins/processing/algs/grass7/ext/r_proj.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingParameterString
 from ..Grass7Utils import isWindows
diff --git a/python/plugins/processing/algs/grass7/ext/r_reclass.py b/python/plugins/processing/algs/grass7/ext/r_reclass.py
index b98e1fff92..6e97c09eab 100644
--- a/python/plugins/processing/algs/grass7/ext/r_reclass.py
+++ b/python/plugins/processing/algs/grass7/ext/r_reclass.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from processing.tools.system import getTempFilename
diff --git a/python/plugins/processing/algs/grass7/ext/r_resamp_filter.py b/python/plugins/processing/algs/grass7/ext/r_resamp_filter.py
index de7063c908..724f645200 100644
--- a/python/plugins/processing/algs/grass7/ext/r_resamp_filter.py
+++ b/python/plugins/processing/algs/grass7/ext/r_resamp_filter.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def checkParameterValuesBeforeExecuting(alg, parameters, context):
diff --git a/python/plugins/processing/algs/grass7/ext/r_rgb.py b/python/plugins/processing/algs/grass7/ext/r_rgb.py
index b5a12138b2..08865ba939 100644
--- a/python/plugins/processing/algs/grass7/ext/r_rgb.py
+++ b/python/plugins/processing/algs/grass7/ext/r_rgb.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/r_series_interp.py b/python/plugins/processing/algs/grass7/ext/r_series_interp.py
index b73229d385..240bc0439d 100644
--- a/python/plugins/processing/algs/grass7/ext/r_series_interp.py
+++ b/python/plugins/processing/algs/grass7/ext/r_series_interp.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.algs.grass7.Grass7Utils import Grass7Utils
diff --git a/python/plugins/processing/algs/grass7/ext/r_shade.py b/python/plugins/processing/algs/grass7/ext/r_shade.py
index 24b65508d6..f97cf675ce 100644
--- a/python/plugins/processing/algs/grass7/ext/r_shade.py
+++ b/python/plugins/processing/algs/grass7/ext/r_shade.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/r_statistics.py b/python/plugins/processing/algs/grass7/ext/r_statistics.py
index a407368987..1cd90aaa6a 100644
--- a/python/plugins/processing/algs/grass7/ext/r_statistics.py
+++ b/python/plugins/processing/algs/grass7/ext/r_statistics.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingParameterString
 from processing.algs.grass7.Grass7Utils import Grass7Utils
diff --git a/python/plugins/processing/algs/grass7/ext/r_stats_quantile_rast.py b/python/plugins/processing/algs/grass7/ext/r_stats_quantile_rast.py
index 3e3802a782..d8e0446b87 100644
--- a/python/plugins/processing/algs/grass7/ext/r_stats_quantile_rast.py
+++ b/python/plugins/processing/algs/grass7/ext/r_stats_quantile_rast.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingParameterString
 from processing.algs.grass7.Grass7Utils import Grass7Utils
diff --git a/python/plugins/processing/algs/grass7/ext/r_what_color.py b/python/plugins/processing/algs/grass7/ext/r_what_color.py
index 365a532541..9d1f003e93 100644
--- a/python/plugins/processing/algs/grass7/ext/r_what_color.py
+++ b/python/plugins/processing/algs/grass7/ext/r_what_color.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_distance.py b/python/plugins/processing/algs/grass7/ext/v_distance.py
index 1ba47951bb..1cef0e1f29 100644
--- a/python/plugins/processing/algs/grass7/ext/v_distance.py
+++ b/python/plugins/processing/algs/grass7/ext/v_distance.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingParameterDefinition
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_edit.py b/python/plugins/processing/algs/grass7/ext/v_edit.py
index f9411e8d07..69a542fb2e 100644
--- a/python/plugins/processing/algs/grass7/ext/v_edit.py
+++ b/python/plugins/processing/algs/grass7/ext/v_edit.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/grass7/ext/v_extrude.py b/python/plugins/processing/algs/grass7/ext/v_extrude.py
index b5b5306194..aeb390c884 100644
--- a/python/plugins/processing/algs/grass7/ext/v_extrude.py
+++ b/python/plugins/processing/algs/grass7/ext/v_extrude.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def checkParameterValuesBeforeExecuting(alg, parameters, context):
diff --git a/python/plugins/processing/algs/grass7/ext/v_in_geonames.py b/python/plugins/processing/algs/grass7/ext/v_in_geonames.py
index 79e5338696..368a5131df 100644
--- a/python/plugins/processing/algs/grass7/ext/v_in_geonames.py
+++ b/python/plugins/processing/algs/grass7/ext/v_in_geonames.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processCommand(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_net.py b/python/plugins/processing/algs/grass7/ext/v_net.py
index 71193e0eb8..fee96e1451 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net.py
@@ -27,7 +27,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.core import QgsProcessingException
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_alloc.py b/python/plugins/processing/algs/grass7/ext/v_net_alloc.py
index fb89e4f1ea..203f6a8bb0 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_alloc.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_alloc.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_allpairs.py b/python/plugins/processing/algs/grass7/ext/v_net_allpairs.py
index 6809bd15b1..b19ea956bd 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_allpairs.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_allpairs.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from .v_net import incorporatePoints, variableOutput
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_bridge.py b/python/plugins/processing/algs/grass7/ext/v_net_bridge.py
index a366985dce..d417d53dd3 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_bridge.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_bridge.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_centrality.py b/python/plugins/processing/algs/grass7/ext/v_net_centrality.py
index f68e5b7b82..3f9122e4d6 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_centrality.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_centrality.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_components.py b/python/plugins/processing/algs/grass7/ext/v_net_components.py
index 153c155379..14862617d5 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_components.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_components.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 from qgis.core import QgsProcessingParameterDefinition
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_connectivity.py b/python/plugins/processing/algs/grass7/ext/v_net_connectivity.py
index 99a211a0e4..3813860692 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_connectivity.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_connectivity.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_distance.py b/python/plugins/processing/algs/grass7/ext/v_net_distance.py
index c5a3d3e6e9..f2514c7398 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_distance.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_distance.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_flow.py b/python/plugins/processing/algs/grass7/ext/v_net_flow.py
index dfbc91e4ec..19710cfe0f 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_flow.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_flow.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from .v_net import incorporatePoints, variableOutput
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_iso.py b/python/plugins/processing/algs/grass7/ext/v_net_iso.py
index adad04e046..992ec880d0 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_iso.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_iso.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_path.py b/python/plugins/processing/algs/grass7/ext/v_net_path.py
index 2e8cb5d2c6..cc15fe9165 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_path.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_path.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_salesman.py b/python/plugins/processing/algs/grass7/ext/v_net_salesman.py
index 050678545b..25077f18b3 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_salesman.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_salesman.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 from qgis.core import QgsProcessingParameterDefinition
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_spanningtree.py b/python/plugins/processing/algs/grass7/ext/v_net_spanningtree.py
index 0d0d6d5c9a..5f981f295a 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_spanningtree.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_spanningtree.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_steiner.py b/python/plugins/processing/algs/grass7/ext/v_net_steiner.py
index a7f8b85a69..8dbb560a03 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_steiner.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_steiner.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import incorporatePoints, variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_net_visibility.py b/python/plugins/processing/algs/grass7/ext/v_net_visibility.py
index 7b367d069b..fd7454d542 100644
--- a/python/plugins/processing/algs/grass7/ext/v_net_visibility.py
+++ b/python/plugins/processing/algs/grass7/ext/v_net_visibility.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from .v_net import variableOutput
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_proj.py b/python/plugins/processing/algs/grass7/ext/v_proj.py
index b86f78131c..b5aac3a27f 100644
--- a/python/plugins/processing/algs/grass7/ext/v_proj.py
+++ b/python/plugins/processing/algs/grass7/ext/v_proj.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingParameterString
 
diff --git a/python/plugins/processing/algs/grass7/ext/v_rast_stats.py b/python/plugins/processing/algs/grass7/ext/v_rast_stats.py
index 8c3586682b..de830cb835 100644
--- a/python/plugins/processing/algs/grass7/ext/v_rast_stats.py
+++ b/python/plugins/processing/algs/grass7/ext/v_rast_stats.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processCommand(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_rectify.py b/python/plugins/processing/algs/grass7/ext/v_rectify.py
index 25eddb3235..a8f830b106 100644
--- a/python/plugins/processing/algs/grass7/ext/v_rectify.py
+++ b/python/plugins/processing/algs/grass7/ext/v_rectify.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.algs.grass7.Grass7Utils import Grass7Utils
diff --git a/python/plugins/processing/algs/grass7/ext/v_sample.py b/python/plugins/processing/algs/grass7/ext/v_sample.py
index b0cd40a850..2e0ebd65ca 100644
--- a/python/plugins/processing/algs/grass7/ext/v_sample.py
+++ b/python/plugins/processing/algs/grass7/ext/v_sample.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_to_3d.py b/python/plugins/processing/algs/grass7/ext/v_to_3d.py
index ea0eb39727..4c7cc4f15e 100644
--- a/python/plugins/processing/algs/grass7/ext/v_to_3d.py
+++ b/python/plugins/processing/algs/grass7/ext/v_to_3d.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def checkParameterValuesBeforeExecuting(alg, parameters, context):
diff --git a/python/plugins/processing/algs/grass7/ext/v_vect_stats.py b/python/plugins/processing/algs/grass7/ext/v_vect_stats.py
index 66fb684cb8..e5688f3a8d 100644
--- a/python/plugins/processing/algs/grass7/ext/v_vect_stats.py
+++ b/python/plugins/processing/algs/grass7/ext/v_vect_stats.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processCommand(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_voronoi.py b/python/plugins/processing/algs/grass7/ext/v_voronoi.py
index cd8e75259b..27b3781348 100644
--- a/python/plugins/processing/algs/grass7/ext/v_voronoi.py
+++ b/python/plugins/processing/algs/grass7/ext/v_voronoi.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processInputs(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_what_rast.py b/python/plugins/processing/algs/grass7/ext/v_what_rast.py
index 4077713792..9193616b9e 100644
--- a/python/plugins/processing/algs/grass7/ext/v_what_rast.py
+++ b/python/plugins/processing/algs/grass7/ext/v_what_rast.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processCommand(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/grass7/ext/v_what_vect.py b/python/plugins/processing/algs/grass7/ext/v_what_vect.py
index 8590ba05e5..48a49e8e3c 100644
--- a/python/plugins/processing/algs/grass7/ext/v_what_vect.py
+++ b/python/plugins/processing/algs/grass7/ext/v_what_vect.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Médéric Ribreux'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def processCommand(alg, parameters, context, feedback):
diff --git a/python/plugins/processing/algs/help/__init__.py b/python/plugins/processing/algs/help/__init__.py
index 85a14161a4..b16e573a73 100644
--- a/python/plugins/processing/algs/help/__init__.py
+++ b/python/plugins/processing/algs/help/__init__.py
@@ -21,7 +21,7 @@ __author__ = 'Victor Olaya'
 __date__ = 'January 2016'
 __copyright__ = '(C) 2016, Victor Olaya'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/algs/qgis/AddTableField.py b/python/plugins/processing/algs/qgis/AddTableField.py
index 98bb064b36..3ceeaeff52 100644
--- a/python/plugins/processing/algs/qgis/AddTableField.py
+++ b/python/plugins/processing/algs/qgis/AddTableField.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QVariant
 from qgis.core import (QgsField,
diff --git a/python/plugins/processing/algs/qgis/Aggregate.py b/python/plugins/processing/algs/qgis/Aggregate.py
index e599293012..6feeb35677 100644
--- a/python/plugins/processing/algs/qgis/Aggregate.py
+++ b/python/plugins/processing/algs/qgis/Aggregate.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (
     QgsDistanceArea,
diff --git a/python/plugins/processing/algs/qgis/Aspect.py b/python/plugins/processing/algs/qgis/Aspect.py
index 2abb559dd8..b554c30e4e 100644
--- a/python/plugins/processing/algs/qgis/Aspect.py
+++ b/python/plugins/processing/algs/qgis/Aspect.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/BarPlot.py b/python/plugins/processing/algs/qgis/BarPlot.py
index c3b90588e5..4f1a167070 100644
--- a/python/plugins/processing/algs/qgis/BarPlot.py
+++ b/python/plugins/processing/algs/qgis/BarPlot.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/BasicStatistics.py b/python/plugins/processing/algs/qgis/BasicStatistics.py
index a01b9717cd..24359f37be 100644
--- a/python/plugins/processing/algs/qgis/BasicStatistics.py
+++ b/python/plugins/processing/algs/qgis/BasicStatistics.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/algs/qgis/BoxPlot.py b/python/plugins/processing/algs/qgis/BoxPlot.py
index 120898efd8..100e2a3bfd 100644
--- a/python/plugins/processing/algs/qgis/BoxPlot.py
+++ b/python/plugins/processing/algs/qgis/BoxPlot.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Matteo Ghetta'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/Buffer.py b/python/plugins/processing/algs/qgis/Buffer.py
index 4e96b1a195..b30a5e7201 100644
--- a/python/plugins/processing/algs/qgis/Buffer.py
+++ b/python/plugins/processing/algs/qgis/Buffer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsFeature,
                        QgsGeometry,
diff --git a/python/plugins/processing/algs/qgis/CheckValidity.py b/python/plugins/processing/algs/qgis/CheckValidity.py
index 4fe35e8222..f7af8414d3 100644
--- a/python/plugins/processing/algs/qgis/CheckValidity.py
+++ b/python/plugins/processing/algs/qgis/CheckValidity.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ConcaveHull.py b/python/plugins/processing/algs/qgis/ConcaveHull.py
index 4f26187c7b..83f858aa09 100644
--- a/python/plugins/processing/algs/qgis/ConcaveHull.py
+++ b/python/plugins/processing/algs/qgis/ConcaveHull.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Piotr Pociask'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 from math import sqrt
diff --git a/python/plugins/processing/algs/qgis/CreateAttributeIndex.py b/python/plugins/processing/algs/qgis/CreateAttributeIndex.py
index cff31ea25e..34abe7d7f5 100644
--- a/python/plugins/processing/algs/qgis/CreateAttributeIndex.py
+++ b/python/plugins/processing/algs/qgis/CreateAttributeIndex.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsVectorDataProvider,
                        QgsFields,
diff --git a/python/plugins/processing/algs/qgis/CreateConstantRaster.py b/python/plugins/processing/algs/qgis/CreateConstantRaster.py
index aaea24130f..22e14dccdf 100644
--- a/python/plugins/processing/algs/qgis/CreateConstantRaster.py
+++ b/python/plugins/processing/algs/qgis/CreateConstantRaster.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/Datasources2Vrt.py b/python/plugins/processing/algs/qgis/Datasources2Vrt.py
index a80dbc5e6e..7b352cce85 100644
--- a/python/plugins/processing/algs/qgis/Datasources2Vrt.py
+++ b/python/plugins/processing/algs/qgis/Datasources2Vrt.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Luigi Pirelli'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import codecs
 import xml.sax.saxutils
diff --git a/python/plugins/processing/algs/qgis/DefineProjection.py b/python/plugins/processing/algs/qgis/DefineProjection.py
index 35af2cb286..44dce025ed 100644
--- a/python/plugins/processing/algs/qgis/DefineProjection.py
+++ b/python/plugins/processing/algs/qgis/DefineProjection.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/processing/algs/qgis/Delaunay.py b/python/plugins/processing/algs/qgis/Delaunay.py
index a82cac4603..6a9d2acb10 100644
--- a/python/plugins/processing/algs/qgis/Delaunay.py
+++ b/python/plugins/processing/algs/qgis/Delaunay.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/DeleteColumn.py b/python/plugins/processing/algs/qgis/DeleteColumn.py
index 70f5a25937..045a463ae9 100644
--- a/python/plugins/processing/algs/qgis/DeleteColumn.py
+++ b/python/plugins/processing/algs/qgis/DeleteColumn.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 
diff --git a/python/plugins/processing/algs/qgis/DeleteDuplicateGeometries.py b/python/plugins/processing/algs/qgis/DeleteDuplicateGeometries.py
index 2d8f28147b..c10ca50068 100644
--- a/python/plugins/processing/algs/qgis/DeleteDuplicateGeometries.py
+++ b/python/plugins/processing/algs/qgis/DeleteDuplicateGeometries.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsFeatureRequest,
                        QgsProcessingException,
diff --git a/python/plugins/processing/algs/qgis/DensifyGeometries.py b/python/plugins/processing/algs/qgis/DensifyGeometries.py
index 8686486945..61261145cf 100644
--- a/python/plugins/processing/algs/qgis/DensifyGeometries.py
+++ b/python/plugins/processing/algs/qgis/DensifyGeometries.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py b/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py
index 9f53536b67..440038c336 100644
--- a/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py
+++ b/python/plugins/processing/algs/qgis/DensifyGeometriesInterval.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2012, Anita Graser'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingParameterDistance,
                        QgsProcessing)
diff --git a/python/plugins/processing/algs/qgis/EliminateSelection.py b/python/plugins/processing/algs/qgis/EliminateSelection.py
index 6f69756a1b..ecb1c5758c 100644
--- a/python/plugins/processing/algs/qgis/EliminateSelection.py
+++ b/python/plugins/processing/algs/qgis/EliminateSelection.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Bernhard Ströbl'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ExecuteSQL.py b/python/plugins/processing/algs/qgis/ExecuteSQL.py
index 82e308968a..6aff3ed07d 100644
--- a/python/plugins/processing/algs/qgis/ExecuteSQL.py
+++ b/python/plugins/processing/algs/qgis/ExecuteSQL.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Hugo Mercier'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsVirtualLayerDefinition,
                        QgsVectorLayer,
diff --git a/python/plugins/processing/algs/qgis/ExportGeometryInfo.py b/python/plugins/processing/algs/qgis/ExportGeometryInfo.py
index 3d931eafd6..957a6ea775 100644
--- a/python/plugins/processing/algs/qgis/ExportGeometryInfo.py
+++ b/python/plugins/processing/algs/qgis/ExportGeometryInfo.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/ExtentFromLayer.py b/python/plugins/processing/algs/qgis/ExtentFromLayer.py
index 8303e2c064..8cc29fbd82 100644
--- a/python/plugins/processing/algs/qgis/ExtentFromLayer.py
+++ b/python/plugins/processing/algs/qgis/ExtentFromLayer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ExtractSpecificVertices.py b/python/plugins/processing/algs/qgis/ExtractSpecificVertices.py
index 4db3d9ab19..3e337d8734 100644
--- a/python/plugins/processing/algs/qgis/ExtractSpecificVertices.py
+++ b/python/plugins/processing/algs/qgis/ExtractSpecificVertices.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import math
 from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
diff --git a/python/plugins/processing/algs/qgis/FieldPyculator.py b/python/plugins/processing/algs/qgis/FieldPyculator.py
index bed4e77695..7d003b48c2 100644
--- a/python/plugins/processing/algs/qgis/FieldPyculator.py
+++ b/python/plugins/processing/algs/qgis/FieldPyculator.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya & NextGIS'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 
diff --git a/python/plugins/processing/algs/qgis/FieldsCalculator.py b/python/plugins/processing/algs/qgis/FieldsCalculator.py
index d2ca11ae1f..5997951754 100644
--- a/python/plugins/processing/algs/qgis/FieldsCalculator.py
+++ b/python/plugins/processing/algs/qgis/FieldsCalculator.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QVariant
 from qgis.core import (QgsExpression,
diff --git a/python/plugins/processing/algs/qgis/FieldsMapper.py b/python/plugins/processing/algs/qgis/FieldsMapper.py
index 2a1391e640..281c5438e5 100644
--- a/python/plugins/processing/algs/qgis/FieldsMapper.py
+++ b/python/plugins/processing/algs/qgis/FieldsMapper.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (
     QgsDistanceArea,
diff --git a/python/plugins/processing/algs/qgis/FindProjection.py b/python/plugins/processing/algs/qgis/FindProjection.py
index e408dded6a..a8a83c5f73 100644
--- a/python/plugins/processing/algs/qgis/FindProjection.py
+++ b/python/plugins/processing/algs/qgis/FindProjection.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/GeometryByExpression.py b/python/plugins/processing/algs/qgis/GeometryByExpression.py
index 4d4415f9df..69f77a27a5 100644
--- a/python/plugins/processing/algs/qgis/GeometryByExpression.py
+++ b/python/plugins/processing/algs/qgis/GeometryByExpression.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsWkbTypes,
                        QgsExpression,
diff --git a/python/plugins/processing/algs/qgis/GeometryConvert.py b/python/plugins/processing/algs/qgis/GeometryConvert.py
index c5cd0eabc7..ecd9418d40 100644
--- a/python/plugins/processing/algs/qgis/GeometryConvert.py
+++ b/python/plugins/processing/algs/qgis/GeometryConvert.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsFeature,
                        QgsGeometry,
diff --git a/python/plugins/processing/algs/qgis/Grid.py b/python/plugins/processing/algs/qgis/Grid.py
index a3e9a94fd1..8f2a477f31 100644
--- a/python/plugins/processing/algs/qgis/Grid.py
+++ b/python/plugins/processing/algs/qgis/Grid.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/Heatmap.py b/python/plugins/processing/algs/qgis/Heatmap.py
index d44cc7d473..bccd729384 100644
--- a/python/plugins/processing/algs/qgis/Heatmap.py
+++ b/python/plugins/processing/algs/qgis/Heatmap.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from collections import OrderedDict
diff --git a/python/plugins/processing/algs/qgis/Hillshade.py b/python/plugins/processing/algs/qgis/Hillshade.py
index f4cec85eef..e0b5029794 100644
--- a/python/plugins/processing/algs/qgis/Hillshade.py
+++ b/python/plugins/processing/algs/qgis/Hillshade.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/HubDistanceLines.py b/python/plugins/processing/algs/qgis/HubDistanceLines.py
index 29c0861951..ddb9d94b57 100644
--- a/python/plugins/processing/algs/qgis/HubDistanceLines.py
+++ b/python/plugins/processing/algs/qgis/HubDistanceLines.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QVariant
 from qgis.core import (QgsField,
diff --git a/python/plugins/processing/algs/qgis/HubDistancePoints.py b/python/plugins/processing/algs/qgis/HubDistancePoints.py
index 5e8bc2a3ed..9439988136 100644
--- a/python/plugins/processing/algs/qgis/HubDistancePoints.py
+++ b/python/plugins/processing/algs/qgis/HubDistancePoints.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QVariant
 from qgis.core import (QgsField,
diff --git a/python/plugins/processing/algs/qgis/HypsometricCurves.py b/python/plugins/processing/algs/qgis/HypsometricCurves.py
index 66ef73d5ce..1c3315fa08 100644
--- a/python/plugins/processing/algs/qgis/HypsometricCurves.py
+++ b/python/plugins/processing/algs/qgis/HypsometricCurves.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import numpy
diff --git a/python/plugins/processing/algs/qgis/IdwInterpolation.py b/python/plugins/processing/algs/qgis/IdwInterpolation.py
index ea81eb1f3d..4315f5a558 100644
--- a/python/plugins/processing/algs/qgis/IdwInterpolation.py
+++ b/python/plugins/processing/algs/qgis/IdwInterpolation.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ImportIntoPostGIS.py b/python/plugins/processing/algs/qgis/ImportIntoPostGIS.py
index 56de8141aa..ee2efc3e9a 100644
--- a/python/plugins/processing/algs/qgis/ImportIntoPostGIS.py
+++ b/python/plugins/processing/algs/qgis/ImportIntoPostGIS.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsVectorLayerExporter,
                        QgsSettings,
diff --git a/python/plugins/processing/algs/qgis/ImportIntoSpatialite.py b/python/plugins/processing/algs/qgis/ImportIntoSpatialite.py
index 40907fb4b0..ab854d2a5b 100644
--- a/python/plugins/processing/algs/qgis/ImportIntoSpatialite.py
+++ b/python/plugins/processing/algs/qgis/ImportIntoSpatialite.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Mathieu Pellerin'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsDataSourceUri,
                        QgsFeatureSink,
diff --git a/python/plugins/processing/algs/qgis/KNearestConcaveHull.py b/python/plugins/processing/algs/qgis/KNearestConcaveHull.py
index ca1eef3311..fc322ad5aa 100644
--- a/python/plugins/processing/algs/qgis/KNearestConcaveHull.py
+++ b/python/plugins/processing/algs/qgis/KNearestConcaveHull.py
@@ -25,7 +25,7 @@ __copyright__ = '(C) 2014, Detlev Neumann'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os.path
 import math
diff --git a/python/plugins/processing/algs/qgis/KeepNBiggestParts.py b/python/plugins/processing/algs/qgis/KeepNBiggestParts.py
index 64736ed5e2..d1fcf8dc30 100644
--- a/python/plugins/processing/algs/qgis/KeepNBiggestParts.py
+++ b/python/plugins/processing/algs/qgis/KeepNBiggestParts.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from operator import itemgetter
 
diff --git a/python/plugins/processing/algs/qgis/LinesToPolygons.py b/python/plugins/processing/algs/qgis/LinesToPolygons.py
index 262b41ee2c..bac5c5cf1b 100644
--- a/python/plugins/processing/algs/qgis/LinesToPolygons.py
+++ b/python/plugins/processing/algs/qgis/LinesToPolygons.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/MeanAndStdDevPlot.py b/python/plugins/processing/algs/qgis/MeanAndStdDevPlot.py
index 1bf1228acc..48de103c02 100644
--- a/python/plugins/processing/algs/qgis/MeanAndStdDevPlot.py
+++ b/python/plugins/processing/algs/qgis/MeanAndStdDevPlot.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/MinimumBoundingGeometry.py b/python/plugins/processing/algs/qgis/MinimumBoundingGeometry.py
index afa9cb567f..12cbc0df22 100644
--- a/python/plugins/processing/algs/qgis/MinimumBoundingGeometry.py
+++ b/python/plugins/processing/algs/qgis/MinimumBoundingGeometry.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/NearestNeighbourAnalysis.py b/python/plugins/processing/algs/qgis/NearestNeighbourAnalysis.py
index 8a9795ec90..88ff81c8d9 100644
--- a/python/plugins/processing/algs/qgis/NearestNeighbourAnalysis.py
+++ b/python/plugins/processing/algs/qgis/NearestNeighbourAnalysis.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/Orthogonalize.py b/python/plugins/processing/algs/qgis/Orthogonalize.py
index 81d2d86dc2..da6980d6ed 100644
--- a/python/plugins/processing/algs/qgis/Orthogonalize.py
+++ b/python/plugins/processing/algs/qgis/Orthogonalize.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProcessingException,
diff --git a/python/plugins/processing/algs/qgis/PointDistance.py b/python/plugins/processing/algs/qgis/PointDistance.py
index 4c47cde791..061926e7cc 100644
--- a/python/plugins/processing/algs/qgis/PointDistance.py
+++ b/python/plugins/processing/algs/qgis/PointDistance.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/PointsAlongGeometry.py b/python/plugins/processing/algs/qgis/PointsAlongGeometry.py
index d9d57d0e26..fa38b4b51c 100644
--- a/python/plugins/processing/algs/qgis/PointsAlongGeometry.py
+++ b/python/plugins/processing/algs/qgis/PointsAlongGeometry.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/PointsDisplacement.py b/python/plugins/processing/algs/qgis/PointsDisplacement.py
index bae1187ace..c788b533e2 100644
--- a/python/plugins/processing/algs/qgis/PointsDisplacement.py
+++ b/python/plugins/processing/algs/qgis/PointsDisplacement.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import math
 from qgis.core import (QgsFeatureSink,
diff --git a/python/plugins/processing/algs/qgis/PointsFromLines.py b/python/plugins/processing/algs/qgis/PointsFromLines.py
index e607de8af5..36a162157e 100644
--- a/python/plugins/processing/algs/qgis/PointsFromLines.py
+++ b/python/plugins/processing/algs/qgis/PointsFromLines.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from osgeo import gdal
 from qgis.PyQt.QtCore import QVariant
diff --git a/python/plugins/processing/algs/qgis/PointsFromPolygons.py b/python/plugins/processing/algs/qgis/PointsFromPolygons.py
index 20b4c6ddf6..ffb9832d73 100644
--- a/python/plugins/processing/algs/qgis/PointsFromPolygons.py
+++ b/python/plugins/processing/algs/qgis/PointsFromPolygons.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from osgeo import gdal
 from qgis.core import (QgsFeatureRequest,
diff --git a/python/plugins/processing/algs/qgis/PointsInPolygon.py b/python/plugins/processing/algs/qgis/PointsInPolygon.py
index d7313eb3ff..7608d0b5a5 100644
--- a/python/plugins/processing/algs/qgis/PointsInPolygon.py
+++ b/python/plugins/processing/algs/qgis/PointsInPolygon.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/PointsLayerFromTable.py b/python/plugins/processing/algs/qgis/PointsLayerFromTable.py
index f01d50039f..0772d0c86a 100644
--- a/python/plugins/processing/algs/qgis/PointsLayerFromTable.py
+++ b/python/plugins/processing/algs/qgis/PointsLayerFromTable.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsApplication,
                        QgsWkbTypes,
diff --git a/python/plugins/processing/algs/qgis/PointsToPaths.py b/python/plugins/processing/algs/qgis/PointsToPaths.py
index 0069dd4724..84635607fe 100644
--- a/python/plugins/processing/algs/qgis/PointsToPaths.py
+++ b/python/plugins/processing/algs/qgis/PointsToPaths.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from datetime import datetime
diff --git a/python/plugins/processing/algs/qgis/PolarPlot.py b/python/plugins/processing/algs/qgis/PolarPlot.py
index a15e2b7ee2..1c20e3a20c 100644
--- a/python/plugins/processing/algs/qgis/PolarPlot.py
+++ b/python/plugins/processing/algs/qgis/PolarPlot.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/PoleOfInaccessibility.py b/python/plugins/processing/algs/qgis/PoleOfInaccessibility.py
index 37f6c0e715..fedb8e919a 100644
--- a/python/plugins/processing/algs/qgis/PoleOfInaccessibility.py
+++ b/python/plugins/processing/algs/qgis/PoleOfInaccessibility.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/Polygonize.py b/python/plugins/processing/algs/qgis/Polygonize.py
index 6ab6f3e1b0..509c78bef0 100644
--- a/python/plugins/processing/algs/qgis/Polygonize.py
+++ b/python/plugins/processing/algs/qgis/Polygonize.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Piotr Pociask'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 from qgis.core import (QgsFields,
diff --git a/python/plugins/processing/algs/qgis/PolygonsToLines.py b/python/plugins/processing/algs/qgis/PolygonsToLines.py
index c11577583c..1399bb3b1a 100644
--- a/python/plugins/processing/algs/qgis/PolygonsToLines.py
+++ b/python/plugins/processing/algs/qgis/PolygonsToLines.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/PostGISExecuteAndLoadSQL.py b/python/plugins/processing/algs/qgis/PostGISExecuteAndLoadSQL.py
index 1a17ee7c2e..b9e84e3884 100644
--- a/python/plugins/processing/algs/qgis/PostGISExecuteAndLoadSQL.py
+++ b/python/plugins/processing/algs/qgis/PostGISExecuteAndLoadSQL.py
@@ -25,7 +25,7 @@ __copyright__ = '(C) 2018, Anita Graser'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (Qgis,
                        QgsProcessingException,
diff --git a/python/plugins/processing/algs/qgis/PostGISExecuteSQL.py b/python/plugins/processing/algs/qgis/PostGISExecuteSQL.py
index 5a347fb0da..0396f7ac14 100644
--- a/python/plugins/processing/algs/qgis/PostGISExecuteSQL.py
+++ b/python/plugins/processing/algs/qgis/PostGISExecuteSQL.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya, Carterix Geomatics'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingException, QgsProcessingParameterString)
 from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
diff --git a/python/plugins/processing/algs/qgis/QgisAlgorithm.py b/python/plugins/processing/algs/qgis/QgisAlgorithm.py
index 0676842cd8..eaa867241d 100644
--- a/python/plugins/processing/algs/qgis/QgisAlgorithm.py
+++ b/python/plugins/processing/algs/qgis/QgisAlgorithm.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsProcessingAlgorithm, QgsProcessingFeatureBasedAlgorithm
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py b/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py
index d7b9a85f08..887960c721 100644
--- a/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py
+++ b/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/algs/qgis/RandomExtract.py b/python/plugins/processing/algs/qgis/RandomExtract.py
index ae7ae4d574..d132c622cd 100644
--- a/python/plugins/processing/algs/qgis/RandomExtract.py
+++ b/python/plugins/processing/algs/qgis/RandomExtract.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import random
 
diff --git a/python/plugins/processing/algs/qgis/RandomExtractWithinSubsets.py b/python/plugins/processing/algs/qgis/RandomExtractWithinSubsets.py
index 68b0972f85..c4e6b81664 100644
--- a/python/plugins/processing/algs/qgis/RandomExtractWithinSubsets.py
+++ b/python/plugins/processing/algs/qgis/RandomExtractWithinSubsets.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import random
 
diff --git a/python/plugins/processing/algs/qgis/RandomPointsAlongLines.py b/python/plugins/processing/algs/qgis/RandomPointsAlongLines.py
index 35351d46d9..054aaa6887 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsAlongLines.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsAlongLines.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import random
 
diff --git a/python/plugins/processing/algs/qgis/RandomPointsExtent.py b/python/plugins/processing/algs/qgis/RandomPointsExtent.py
index 6248fd1a0e..75eaf8dfac 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsExtent.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsExtent.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import random
diff --git a/python/plugins/processing/algs/qgis/RandomPointsLayer.py b/python/plugins/processing/algs/qgis/RandomPointsLayer.py
index 6f5f748892..e4b26aa68f 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsLayer.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsLayer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import random
diff --git a/python/plugins/processing/algs/qgis/RandomPointsPolygons.py b/python/plugins/processing/algs/qgis/RandomPointsPolygons.py
index f0b34217a2..8aa6c77561 100644
--- a/python/plugins/processing/algs/qgis/RandomPointsPolygons.py
+++ b/python/plugins/processing/algs/qgis/RandomPointsPolygons.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import random
diff --git a/python/plugins/processing/algs/qgis/RandomSelection.py b/python/plugins/processing/algs/qgis/RandomSelection.py
index 2623333b0e..930965e0f3 100644
--- a/python/plugins/processing/algs/qgis/RandomSelection.py
+++ b/python/plugins/processing/algs/qgis/RandomSelection.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import random
diff --git a/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py b/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py
index 5307180ef2..14430f7a84 100644
--- a/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py
+++ b/python/plugins/processing/algs/qgis/RandomSelectionWithinSubsets.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import random
diff --git a/python/plugins/processing/algs/qgis/RasterCalculator.py b/python/plugins/processing/algs/qgis/RasterCalculator.py
index 5484f60572..16a322b312 100644
--- a/python/plugins/processing/algs/qgis/RasterCalculator.py
+++ b/python/plugins/processing/algs/qgis/RasterCalculator.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/RasterLayerHistogram.py b/python/plugins/processing/algs/qgis/RasterLayerHistogram.py
index 1b581a91e1..99d7845aed 100644
--- a/python/plugins/processing/algs/qgis/RasterLayerHistogram.py
+++ b/python/plugins/processing/algs/qgis/RasterLayerHistogram.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/RasterLayerStatistics.py b/python/plugins/processing/algs/qgis/RasterLayerStatistics.py
index 58cc77fc68..945ec14511 100644
--- a/python/plugins/processing/algs/qgis/RasterLayerStatistics.py
+++ b/python/plugins/processing/algs/qgis/RasterLayerStatistics.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import codecs
 
diff --git a/python/plugins/processing/algs/qgis/RasterSampling.py b/python/plugins/processing/algs/qgis/RasterSampling.py
index 6f7ad79dee..f88f59c458 100644
--- a/python/plugins/processing/algs/qgis/RasterSampling.py
+++ b/python/plugins/processing/algs/qgis/RasterSampling.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Matteo Ghetta'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/algs/qgis/Rasterize.py b/python/plugins/processing/algs/qgis/Rasterize.py
index 75d27a6c77..d4a7ae5ce5 100644
--- a/python/plugins/processing/algs/qgis/Rasterize.py
+++ b/python/plugins/processing/algs/qgis/Rasterize.py
@@ -49,7 +49,7 @@ __copyright__ = '(C) 2016 by OPENGIS.ch'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 class RasterizeAlgorithm(QgisAlgorithm):
diff --git a/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsFixed.py b/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsFixed.py
index 5ed0bb17f1..7cf6eebb47 100644
--- a/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsFixed.py
+++ b/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsFixed.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import math
 
diff --git a/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsVariable.py b/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsVariable.py
index 295d89ad15..9af8dc74b1 100644
--- a/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsVariable.py
+++ b/python/plugins/processing/algs/qgis/RectanglesOvalsDiamondsVariable.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import math
 
diff --git a/python/plugins/processing/algs/qgis/RegularPoints.py b/python/plugins/processing/algs/qgis/RegularPoints.py
index acc326eea1..33929a6ff4 100644
--- a/python/plugins/processing/algs/qgis/RegularPoints.py
+++ b/python/plugins/processing/algs/qgis/RegularPoints.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from random import seed, uniform
diff --git a/python/plugins/processing/algs/qgis/Relief.py b/python/plugins/processing/algs/qgis/Relief.py
index 17b6440fee..86698fda32 100644
--- a/python/plugins/processing/algs/qgis/Relief.py
+++ b/python/plugins/processing/algs/qgis/Relief.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/Ruggedness.py b/python/plugins/processing/algs/qgis/Ruggedness.py
index 98cfa9e955..80e2a8b894 100644
--- a/python/plugins/processing/algs/qgis/Ruggedness.py
+++ b/python/plugins/processing/algs/qgis/Ruggedness.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SelectByAttribute.py b/python/plugins/processing/algs/qgis/SelectByAttribute.py
index 4e9ca579af..8bc349c676 100644
--- a/python/plugins/processing/algs/qgis/SelectByAttribute.py
+++ b/python/plugins/processing/algs/qgis/SelectByAttribute.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QVariant
 from qgis.core import (QgsExpression,
@@ -48,7 +48,7 @@ class SelectByAttribute(QgisAlgorithm):
     OUTPUT = 'OUTPUT'
 
     OPERATORS = ['=',
-                 '≠',
+                 '<>',
                  '>',
                  '>=',
                  '<',
@@ -82,9 +82,9 @@ class SelectByAttribute(QgisAlgorithm):
         self.operators = ['=',
                           '≠',
                           '>',
-                          '>=',
+                          '≥',
                           '<',
-                          '<=',
+                          '≤',
                           self.tr('begins with'),
                           self.tr('contains'),
                           self.tr('is null'),
@@ -104,14 +104,14 @@ class SelectByAttribute(QgisAlgorithm):
                                                       self.tr('Selection attribute'),
                                                       parentLayerParameterName=self.INPUT))
         self.addParameter(QgsProcessingParameterEnum(self.OPERATOR,
-                                                     self.tr('Operator'), self.operators))
+                                                     self.tr('Operator'), self.operators, defaultValue=0))
         self.addParameter(QgsProcessingParameterString(self.VALUE,
                                                        self.tr('Value'),
                                                        optional=True))
         self.addParameter(QgsProcessingParameterEnum(self.METHOD,
                                                      self.tr('Modify current selection by'),
                                                      self.methods,
-                                                     0))
+                                                     defaultValue=0))
 
         self.addOutput(QgsProcessingOutputVectorLayer(self.OUTPUT, self.tr('Selected (attribute)')))
 
diff --git a/python/plugins/processing/algs/qgis/SelectByExpression.py b/python/plugins/processing/algs/qgis/SelectByExpression.py
index bac1ca625f..00c2a052be 100644
--- a/python/plugins/processing/algs/qgis/SelectByExpression.py
+++ b/python/plugins/processing/algs/qgis/SelectByExpression.py
@@ -22,7 +22,7 @@ __copyright__ = '(C) 2014, Michael Douchin'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsExpression,
                        QgsProcessing,
@@ -66,7 +66,7 @@ class SelectByExpression(QgisAlgorithm):
         self.addParameter(QgsProcessingParameterExpression(self.EXPRESSION,
                                                            self.tr('Expression'), parentLayerParameterName=self.INPUT))
         self.addParameter(QgsProcessingParameterEnum(self.METHOD,
-                                                     self.tr('Modify current selection by'), self.methods, 0))
+                                                     self.tr('Modify current selection by'), self.methods, defaultValue=0))
 
         self.addOutput(QgsProcessingOutputVectorLayer(self.OUTPUT, self.tr('Selected (attribute)')))
 
diff --git a/python/plugins/processing/algs/qgis/ServiceAreaFromLayer.py b/python/plugins/processing/algs/qgis/ServiceAreaFromLayer.py
index 4c765b1b53..3833ed9aca 100644
--- a/python/plugins/processing/algs/qgis/ServiceAreaFromLayer.py
+++ b/python/plugins/processing/algs/qgis/ServiceAreaFromLayer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from collections import OrderedDict
diff --git a/python/plugins/processing/algs/qgis/ServiceAreaFromPoint.py b/python/plugins/processing/algs/qgis/ServiceAreaFromPoint.py
index f9ded70a51..fa2c6a9284 100644
--- a/python/plugins/processing/algs/qgis/ServiceAreaFromPoint.py
+++ b/python/plugins/processing/algs/qgis/ServiceAreaFromPoint.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from collections import OrderedDict
diff --git a/python/plugins/processing/algs/qgis/SetMValue.py b/python/plugins/processing/algs/qgis/SetMValue.py
index 3a3b0e4007..2bb6ee40b0 100644
--- a/python/plugins/processing/algs/qgis/SetMValue.py
+++ b/python/plugins/processing/algs/qgis/SetMValue.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SetRasterStyle.py b/python/plugins/processing/algs/qgis/SetRasterStyle.py
index aff067fa47..8a15256bba 100644
--- a/python/plugins/processing/algs/qgis/SetRasterStyle.py
+++ b/python/plugins/processing/algs/qgis/SetRasterStyle.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SetVectorStyle.py b/python/plugins/processing/algs/qgis/SetVectorStyle.py
index f5ffe94862..cbf5963614 100644
--- a/python/plugins/processing/algs/qgis/SetVectorStyle.py
+++ b/python/plugins/processing/algs/qgis/SetVectorStyle.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingAlgorithm,
                        QgsProcessingParameterFile,
diff --git a/python/plugins/processing/algs/qgis/SetZValue.py b/python/plugins/processing/algs/qgis/SetZValue.py
index f9b7b42271..8cc4271a8b 100644
--- a/python/plugins/processing/algs/qgis/SetZValue.py
+++ b/python/plugins/processing/algs/qgis/SetZValue.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SingleSidedBuffer.py b/python/plugins/processing/algs/qgis/SingleSidedBuffer.py
index 26ff46932c..0dcfe8fa8e 100644
--- a/python/plugins/processing/algs/qgis/SingleSidedBuffer.py
+++ b/python/plugins/processing/algs/qgis/SingleSidedBuffer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsGeometry,
                        QgsWkbTypes,
diff --git a/python/plugins/processing/algs/qgis/Slope.py b/python/plugins/processing/algs/qgis/Slope.py
index e14d62eb05..809c5f420d 100644
--- a/python/plugins/processing/algs/qgis/Slope.py
+++ b/python/plugins/processing/algs/qgis/Slope.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SnapGeometries.py b/python/plugins/processing/algs/qgis/SnapGeometries.py
index 6f395b002a..5c87c60b0e 100644
--- a/python/plugins/processing/algs/qgis/SnapGeometries.py
+++ b/python/plugins/processing/algs/qgis/SnapGeometries.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.analysis import (QgsGeometrySnapper,
                            QgsGeometrySnapperSingleSource,
diff --git a/python/plugins/processing/algs/qgis/SpatialIndex.py b/python/plugins/processing/algs/qgis/SpatialIndex.py
index 97ac2e33a1..8e0cf5cc73 100644
--- a/python/plugins/processing/algs/qgis/SpatialIndex.py
+++ b/python/plugins/processing/algs/qgis/SpatialIndex.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SpatialJoin.py b/python/plugins/processing/algs/qgis/SpatialJoin.py
index 091a1befad..e995873c3c 100644
--- a/python/plugins/processing/algs/qgis/SpatialJoin.py
+++ b/python/plugins/processing/algs/qgis/SpatialJoin.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Joshua Arnott'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/SpatialJoinSummary.py b/python/plugins/processing/algs/qgis/SpatialJoinSummary.py
index df42bd27e2..6edaffcdec 100644
--- a/python/plugins/processing/algs/qgis/SpatialJoinSummary.py
+++ b/python/plugins/processing/algs/qgis/SpatialJoinSummary.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/algs/qgis/SpatialiteExecuteSQL.py b/python/plugins/processing/algs/qgis/SpatialiteExecuteSQL.py
index 5db2537fc3..21dc6aaa18 100644
--- a/python/plugins/processing/algs/qgis/SpatialiteExecuteSQL.py
+++ b/python/plugins/processing/algs/qgis/SpatialiteExecuteSQL.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Mathieu Pellerin'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsDataSourceUri,
                        QgsProcessing,
diff --git a/python/plugins/processing/algs/qgis/StatisticsByCategories.py b/python/plugins/processing/algs/qgis/StatisticsByCategories.py
index ed7a83df7a..e3b1a28f93 100644
--- a/python/plugins/processing/algs/qgis/StatisticsByCategories.py
+++ b/python/plugins/processing/algs/qgis/StatisticsByCategories.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingParameterFeatureSource,
                        QgsStatisticalSummary,
diff --git a/python/plugins/processing/algs/qgis/SumLines.py b/python/plugins/processing/algs/qgis/SumLines.py
index 1c46cbf628..feedfbc8f5 100644
--- a/python/plugins/processing/algs/qgis/SumLines.py
+++ b/python/plugins/processing/algs/qgis/SumLines.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/TextToFloat.py b/python/plugins/processing/algs/qgis/TextToFloat.py
index 177e99900d..ab385802f7 100644
--- a/python/plugins/processing/algs/qgis/TextToFloat.py
+++ b/python/plugins/processing/algs/qgis/TextToFloat.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2010, Michael Minn'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QVariant
 from qgis.core import (QgsField,
diff --git a/python/plugins/processing/algs/qgis/TinInterpolation.py b/python/plugins/processing/algs/qgis/TinInterpolation.py
index f7f7bc265b..a992cc2d38 100644
--- a/python/plugins/processing/algs/qgis/TinInterpolation.py
+++ b/python/plugins/processing/algs/qgis/TinInterpolation.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/TopoColors.py b/python/plugins/processing/algs/qgis/TopoColors.py
index e5bbe514dc..804e3b9f67 100644
--- a/python/plugins/processing/algs/qgis/TopoColors.py
+++ b/python/plugins/processing/algs/qgis/TopoColors.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive323
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import operator
diff --git a/python/plugins/processing/algs/qgis/TruncateTable.py b/python/plugins/processing/algs/qgis/TruncateTable.py
index fff8e7d5fd..2bbcd44b06 100644
--- a/python/plugins/processing/algs/qgis/TruncateTable.py
+++ b/python/plugins/processing/algs/qgis/TruncateTable.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessingAlgorithm,
                        QgsProcessingParameterVectorLayer,
diff --git a/python/plugins/processing/algs/qgis/UniqueValues.py b/python/plugins/processing/algs/qgis/UniqueValues.py
index 03557f3bce..0561ca1425 100644
--- a/python/plugins/processing/algs/qgis/UniqueValues.py
+++ b/python/plugins/processing/algs/qgis/UniqueValues.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/algs/qgis/VariableDistanceBuffer.py b/python/plugins/processing/algs/qgis/VariableDistanceBuffer.py
index 23385ef96e..0d5da09155 100644
--- a/python/plugins/processing/algs/qgis/VariableDistanceBuffer.py
+++ b/python/plugins/processing/algs/qgis/VariableDistanceBuffer.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/VectorLayerHistogram.py b/python/plugins/processing/algs/qgis/VectorLayerHistogram.py
index 1b4e66e68c..54bb105d20 100644
--- a/python/plugins/processing/algs/qgis/VectorLayerHistogram.py
+++ b/python/plugins/processing/algs/qgis/VectorLayerHistogram.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/VectorLayerScatterplot.py b/python/plugins/processing/algs/qgis/VectorLayerScatterplot.py
index 8737a6756a..41425b2622 100644
--- a/python/plugins/processing/algs/qgis/VectorLayerScatterplot.py
+++ b/python/plugins/processing/algs/qgis/VectorLayerScatterplot.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/VectorLayerScatterplot3D.py b/python/plugins/processing/algs/qgis/VectorLayerScatterplot3D.py
index 61c188707a..a11b92968c 100644
--- a/python/plugins/processing/algs/qgis/VectorLayerScatterplot3D.py
+++ b/python/plugins/processing/algs/qgis/VectorLayerScatterplot3D.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import plotly as plt
 import plotly.graph_objs as go
diff --git a/python/plugins/processing/algs/qgis/VectorSplit.py b/python/plugins/processing/algs/qgis/VectorSplit.py
index bfcd3db182..343d29b5d3 100644
--- a/python/plugins/processing/algs/qgis/VectorSplit.py
+++ b/python/plugins/processing/algs/qgis/VectorSplit.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/VoronoiPolygons.py b/python/plugins/processing/algs/qgis/VoronoiPolygons.py
index 3cf82e8071..65bef047f4 100755
--- a/python/plugins/processing/algs/qgis/VoronoiPolygons.py
+++ b/python/plugins/processing/algs/qgis/VoronoiPolygons.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ZonalStatistics.py b/python/plugins/processing/algs/qgis/ZonalStatistics.py
index 22042f7db7..7d05f2a875 100644
--- a/python/plugins/processing/algs/qgis/ZonalStatistics.py
+++ b/python/plugins/processing/algs/qgis/ZonalStatistics.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from collections import OrderedDict
diff --git a/python/plugins/processing/algs/qgis/ui/AggregatesPanel.py b/python/plugins/processing/algs/qgis/ui/AggregatesPanel.py
index 6aec50c6c6..b37a158284 100644
--- a/python/plugins/processing/algs/qgis/ui/AggregatesPanel.py
+++ b/python/plugins/processing/algs/qgis/ui/AggregatesPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import (
     QItemSelectionModel,
diff --git a/python/plugins/processing/algs/qgis/ui/ExecuteSQLWidget.py b/python/plugins/processing/algs/qgis/ui/ExecuteSQLWidget.py
index d481679e0d..7075a7d7be 100644
--- a/python/plugins/processing/algs/qgis/ui/ExecuteSQLWidget.py
+++ b/python/plugins/processing/algs/qgis/ui/ExecuteSQLWidget.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Paul Blottiere'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py b/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py
index 0a433f1aac..04d55c9340 100644
--- a/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py
+++ b/python/plugins/processing/algs/qgis/ui/FieldsCalculatorDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py b/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py
index 9395976eea..502993bbce 100644
--- a/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py
+++ b/python/plugins/processing/algs/qgis/ui/FieldsMappingPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from collections import OrderedDict
diff --git a/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py b/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py
index 509b4aa3b0..066abe3f0a 100644
--- a/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py
+++ b/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/qgis/ui/RasterCalculatorWidgets.py b/python/plugins/processing/algs/qgis/ui/RasterCalculatorWidgets.py
index 65a6e78eb7..ee22e72d60 100644
--- a/python/plugins/processing/algs/qgis/ui/RasterCalculatorWidgets.py
+++ b/python/plugins/processing/algs/qgis/ui/RasterCalculatorWidgets.py
@@ -21,7 +21,7 @@ __author__ = 'Victor Olaya'
 __date__ = 'November 2016'
 __copyright__ = '(C) 2016, Victor Olaya'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from functools import partial
@@ -120,7 +120,7 @@ WIDGET, BASE = uic.loadUiType(
 
 class ExpressionWidget(BASE, WIDGET):
 
-    _expressions = {"NDVI": "([NIR] - [Red]) % ([NIR] + [Red])"}
+    _expressions = {"NDVI": "([NIR] - [Red]) / ([NIR] + [Red])"}
 
     def __init__(self, options):
         super(ExpressionWidget, self).__init__(None)
diff --git a/python/plugins/processing/algs/qgis/ui/ReliefColorsWidget.py b/python/plugins/processing/algs/qgis/ui/ReliefColorsWidget.py
index 7cf29796f3..56f0ab628c 100644
--- a/python/plugins/processing/algs/qgis/ui/ReliefColorsWidget.py
+++ b/python/plugins/processing/algs/qgis/ui/ReliefColorsWidget.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/algs/qgis/voronoi.py b/python/plugins/processing/algs/qgis/voronoi.py
index cabd8bfb1d..e3038e559f 100755
--- a/python/plugins/processing/algs/qgis/voronoi.py
+++ b/python/plugins/processing/algs/qgis/voronoi.py
@@ -21,7 +21,7 @@ __author__ = 'Victor Olaya'
 __date__ = 'August 2012'
 __copyright__ = '(C) 2012, Victor Olaya'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 #############################################################################
 #
diff --git a/python/plugins/processing/algs/saga/SagaAlgorithm.py b/python/plugins/processing/algs/saga/SagaAlgorithm.py
index 78e23f68ad..f1f852110a 100644
--- a/python/plugins/processing/algs/saga/SagaAlgorithm.py
+++ b/python/plugins/processing/algs/saga/SagaAlgorithm.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import shutil
@@ -225,7 +225,7 @@ class SagaAlgorithm(SagaAlgorithmBase):
                     for i, layer in enumerate(layers):
                         if layer.source().lower().endswith('sdat'):
                             files.append(layer.source()[:-4] + 'sgrd')
-                        if layer.source().lower().endswith('sgrd'):
+                        elif layer.source().lower().endswith('sgrd'):
                             files.append(layer.source())
                         else:
                             exportCommand = self.exportRasterLayer(param.name(), layer)
diff --git a/python/plugins/processing/algs/saga/SagaAlgorithmBase.py b/python/plugins/processing/algs/saga/SagaAlgorithmBase.py
index 183d04721e..f62fede877 100644
--- a/python/plugins/processing/algs/saga/SagaAlgorithmBase.py
+++ b/python/plugins/processing/algs/saga/SagaAlgorithmBase.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py b/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py
index e8f10c69af..4c105c657e 100755
--- a/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py
+++ b/python/plugins/processing/algs/saga/SagaAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.PyQt.QtGui import QIcon
diff --git a/python/plugins/processing/algs/saga/SagaDescriptionCreator.py b/python/plugins/processing/algs/saga/SagaDescriptionCreator.py
index cf5dcc745a..7ef9b823c5 100644
--- a/python/plugins/processing/algs/saga/SagaDescriptionCreator.py
+++ b/python/plugins/processing/algs/saga/SagaDescriptionCreator.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import subprocess
 import os
diff --git a/python/plugins/processing/algs/saga/SagaNameDecorator.py b/python/plugins/processing/algs/saga/SagaNameDecorator.py
index b169f42b62..5056fd5fa6 100644
--- a/python/plugins/processing/algs/saga/SagaNameDecorator.py
+++ b/python/plugins/processing/algs/saga/SagaNameDecorator.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 groups = {'grid_analysis': 'Raster analysis',
           'grid_calculus': 'Raster calculus',
diff --git a/python/plugins/processing/algs/saga/SagaParameters.py b/python/plugins/processing/algs/saga/SagaParameters.py
index 8f374df44d..0473a11d22 100644
--- a/python/plugins/processing/algs/saga/SagaParameters.py
+++ b/python/plugins/processing/algs/saga/SagaParameters.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2018, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import importlib
diff --git a/python/plugins/processing/algs/saga/SagaUtils.py b/python/plugins/processing/algs/saga/SagaUtils.py
index 569a8ba628..9e21de2f99 100644
--- a/python/plugins/processing/algs/saga/SagaUtils.py
+++ b/python/plugins/processing/algs/saga/SagaUtils.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import platform
diff --git a/python/plugins/processing/algs/saga/SplitRGBBands.py b/python/plugins/processing/algs/saga/SplitRGBBands.py
index 2344a1f2d2..84e7fbefd9 100644
--- a/python/plugins/processing/algs/saga/SplitRGBBands.py
+++ b/python/plugins/processing/algs/saga/SplitRGBBands.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.core import (QgsProcessingParameterRasterLayer,
@@ -60,7 +60,10 @@ class SplitRGBBands(SagaAlgorithmBase):
         return self.tr('Split RGB bands')
 
     def group(self):
-        return self.tr('Image tools')
+        return self.tr('Raster tools')
+
+    def groupId(self):
+        return 'rastertools'
 
     def processAlgorithm(self, parameters, context, feedback):
         # TODO: check correct num of bands
diff --git a/python/plugins/processing/algs/saga/description/UserDefinedFilter.txt b/python/plugins/processing/algs/saga/description/UserDefinedFilter.txt
index b382bdb0ac..5dbaf76a86 100644
--- a/python/plugins/processing/algs/saga/description/UserDefinedFilter.txt
+++ b/python/plugins/processing/algs/saga/description/UserDefinedFilter.txt
@@ -2,5 +2,5 @@ User Defined Filter
 grid_filter
 QgsProcessingParameterRasterLayer|INPUT|Grid|None|False
 QgsProcessingParameterFeatureSource|FILTER|Filter Matrix|5|None|True
-QgsProcessingParameterMatrix|FILTER_3X3|Default Filter Matrix (3x3)|3|True|1;2;3
+QgsProcessingParameterMatrix|FILTER_3X3|Default Filter Matrix (3x3)|3|True|1;2;3|,,,,,,,,
 QgsProcessingParameterRasterDestination|RESULT|Filtered Grid
diff --git a/python/plugins/processing/algs/saga/ext/supervisedclassification.py b/python/plugins/processing/algs/saga/ext/supervisedclassification.py
index af5a00f6eb..149058c3d4 100644
--- a/python/plugins/processing/algs/saga/ext/supervisedclassification.py
+++ b/python/plugins/processing/algs/saga/ext/supervisedclassification.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from processing.tests.TestData import table
diff --git a/python/plugins/processing/algs/saga/versioncheck.py b/python/plugins/processing/algs/saga/versioncheck.py
index bdbdd698ba..476298dcfc 100644
--- a/python/plugins/processing/algs/saga/versioncheck.py
+++ b/python/plugins/processing/algs/saga/versioncheck.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/core/Processing.py b/python/plugins/processing/core/Processing.py
index d0e5536211..24574b076c 100644
--- a/python/plugins/processing/core/Processing.py
+++ b/python/plugins/processing/core/Processing.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import traceback
diff --git a/python/plugins/processing/core/ProcessingConfig.py b/python/plugins/processing/core/ProcessingConfig.py
index 17f3165909..aa69ca9e15 100644
--- a/python/plugins/processing/core/ProcessingConfig.py
+++ b/python/plugins/processing/core/ProcessingConfig.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/core/ProcessingLog.py b/python/plugins/processing/core/ProcessingLog.py
index 055f9c5a8d..0d764fab79 100644
--- a/python/plugins/processing/core/ProcessingLog.py
+++ b/python/plugins/processing/core/ProcessingLog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/core/ProcessingResults.py b/python/plugins/processing/core/ProcessingResults.py
index d5be07d7db..2ed94052e4 100644
--- a/python/plugins/processing/core/ProcessingResults.py
+++ b/python/plugins/processing/core/ProcessingResults.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QObject, pyqtSignal
 
diff --git a/python/plugins/processing/core/defaultproviders.py b/python/plugins/processing/core/defaultproviders.py
index 1631a2582c..acc12d2a5c 100644
--- a/python/plugins/processing/core/defaultproviders.py
+++ b/python/plugins/processing/core/defaultproviders.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def loadDefaultProviders():
diff --git a/python/plugins/processing/core/outputs.py b/python/plugins/processing/core/outputs.py
index ffd2e26845..400bf7f1f2 100644
--- a/python/plugins/processing/core/outputs.py
+++ b/python/plugins/processing/core/outputs.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 
diff --git a/python/plugins/processing/core/parameters.py b/python/plugins/processing/core/parameters.py
index 423bb94c0e..52bb1c64bd 100755
--- a/python/plugins/processing/core/parameters.py
+++ b/python/plugins/processing/core/parameters.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 
diff --git a/python/plugins/processing/gui/AlgorithmDialog.py b/python/plugins/processing/gui/AlgorithmDialog.py
index d50fe5edfb..00352911ab 100644
--- a/python/plugins/processing/gui/AlgorithmDialog.py
+++ b/python/plugins/processing/gui/AlgorithmDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from pprint import pformat
diff --git a/python/plugins/processing/gui/AlgorithmDialogBase.py b/python/plugins/processing/gui/AlgorithmDialogBase.py
index 15511b29ce..3f34dc8d50 100644
--- a/python/plugins/processing/gui/AlgorithmDialogBase.py
+++ b/python/plugins/processing/gui/AlgorithmDialogBase.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 class AlgorithmDialogBase:
diff --git a/python/plugins/processing/gui/AlgorithmExecutor.py b/python/plugins/processing/gui/AlgorithmExecutor.py
index 37710651aa..d82c56a200 100644
--- a/python/plugins/processing/gui/AlgorithmExecutor.py
+++ b/python/plugins/processing/gui/AlgorithmExecutor.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/python/plugins/processing/gui/AlgorithmLocatorFilter.py b/python/plugins/processing/gui/AlgorithmLocatorFilter.py
index 9cb4042eca..ac0963c4bb 100644
--- a/python/plugins/processing/gui/AlgorithmLocatorFilter.py
+++ b/python/plugins/processing/gui/AlgorithmLocatorFilter.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (QgsApplication,
diff --git a/python/plugins/processing/gui/AutofillDialog.py b/python/plugins/processing/gui/AutofillDialog.py
index e282f2e9fa..a62601ca5e 100644
--- a/python/plugins/processing/gui/AutofillDialog.py
+++ b/python/plugins/processing/gui/AutofillDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/BatchAlgorithmDialog.py b/python/plugins/processing/gui/BatchAlgorithmDialog.py
index c73d309b93..eb499c606d 100644
--- a/python/plugins/processing/gui/BatchAlgorithmDialog.py
+++ b/python/plugins/processing/gui/BatchAlgorithmDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from pprint import pformat
 import time
diff --git a/python/plugins/processing/gui/BatchInputSelectionPanel.py b/python/plugins/processing/gui/BatchInputSelectionPanel.py
index 9895b2e092..80f9ff55db 100644
--- a/python/plugins/processing/gui/BatchInputSelectionPanel.py
+++ b/python/plugins/processing/gui/BatchInputSelectionPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/gui/BatchOutputSelectionPanel.py b/python/plugins/processing/gui/BatchOutputSelectionPanel.py
index 877d851e57..81aefbdb08 100644
--- a/python/plugins/processing/gui/BatchOutputSelectionPanel.py
+++ b/python/plugins/processing/gui/BatchOutputSelectionPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/processing/gui/BatchPanel.py b/python/plugins/processing/gui/BatchPanel.py
index aa41676403..55b9be7fba 100644
--- a/python/plugins/processing/gui/BatchPanel.py
+++ b/python/plugins/processing/gui/BatchPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import json
diff --git a/python/plugins/processing/gui/CheckboxesPanel.py b/python/plugins/processing/gui/CheckboxesPanel.py
index cf9c24fa32..2f1020117a 100644
--- a/python/plugins/processing/gui/CheckboxesPanel.py
+++ b/python/plugins/processing/gui/CheckboxesPanel.py
@@ -23,7 +23,7 @@ __date__ = 'January 2015'
 __copyright__ = '(C) 2015, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import Qt
 from qgis.PyQt.QtWidgets import (
diff --git a/python/plugins/processing/gui/ConfigDialog.py b/python/plugins/processing/gui/ConfigDialog.py
index 3d26e361d2..3cf5873126 100644
--- a/python/plugins/processing/gui/ConfigDialog.py
+++ b/python/plugins/processing/gui/ConfigDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/ContextAction.py b/python/plugins/processing/gui/ContextAction.py
index 16009e520e..cd4513192b 100644
--- a/python/plugins/processing/gui/ContextAction.py
+++ b/python/plugins/processing/gui/ContextAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/python/plugins/processing/gui/DestinationSelectionPanel.py b/python/plugins/processing/gui/DestinationSelectionPanel.py
index ef7020dbbd..c24b22ddaa 100644
--- a/python/plugins/processing/gui/DestinationSelectionPanel.py
+++ b/python/plugins/processing/gui/DestinationSelectionPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import re
 import os
diff --git a/python/plugins/processing/gui/DirectorySelectorDialog.py b/python/plugins/processing/gui/DirectorySelectorDialog.py
index 3fa5a576fc..e2c44c3951 100644
--- a/python/plugins/processing/gui/DirectorySelectorDialog.py
+++ b/python/plugins/processing/gui/DirectorySelectorDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/EditRenderingStylesDialog.py b/python/plugins/processing/gui/EditRenderingStylesDialog.py
index fac2d52b61..c2944d190f 100644
--- a/python/plugins/processing/gui/EditRenderingStylesDialog.py
+++ b/python/plugins/processing/gui/EditRenderingStylesDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/ExtentSelectionPanel.py b/python/plugins/processing/gui/ExtentSelectionPanel.py
index 19b0b4efe8..7dc6992d33 100644
--- a/python/plugins/processing/gui/ExtentSelectionPanel.py
+++ b/python/plugins/processing/gui/ExtentSelectionPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/FileSelectionPanel.py b/python/plugins/processing/gui/FileSelectionPanel.py
index d48e62030c..521c7d507b 100644
--- a/python/plugins/processing/gui/FileSelectionPanel.py
+++ b/python/plugins/processing/gui/FileSelectionPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/FixedTableDialog.py b/python/plugins/processing/gui/FixedTableDialog.py
index 69028e5d04..89c944be74 100644
--- a/python/plugins/processing/gui/FixedTableDialog.py
+++ b/python/plugins/processing/gui/FixedTableDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/FixedTablePanel.py b/python/plugins/processing/gui/FixedTablePanel.py
index c24b2a6324..88d1f6e758 100644
--- a/python/plugins/processing/gui/FixedTablePanel.py
+++ b/python/plugins/processing/gui/FixedTablePanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/Help2Html.py b/python/plugins/processing/gui/Help2Html.py
index 75df5b32de..b1f31fbaea 100644
--- a/python/plugins/processing/gui/Help2Html.py
+++ b/python/plugins/processing/gui/Help2Html.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/processing/gui/HelpEditionDialog.py b/python/plugins/processing/gui/HelpEditionDialog.py
index e57f50c2a2..ce9a95ef43 100644
--- a/python/plugins/processing/gui/HelpEditionDialog.py
+++ b/python/plugins/processing/gui/HelpEditionDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import json
diff --git a/python/plugins/processing/gui/HistoryDialog.py b/python/plugins/processing/gui/HistoryDialog.py
index 7bec5d80f0..1eea45ceeb 100644
--- a/python/plugins/processing/gui/HistoryDialog.py
+++ b/python/plugins/processing/gui/HistoryDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/ListMultiselectWidget.py b/python/plugins/processing/gui/ListMultiselectWidget.py
index dda03fc5af..568a36c1e5 100644
--- a/python/plugins/processing/gui/ListMultiselectWidget.py
+++ b/python/plugins/processing/gui/ListMultiselectWidget.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Marco Bernasocchi'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.PyQt.QtWidgets import (QGroupBox,
diff --git a/python/plugins/processing/gui/MessageBarProgress.py b/python/plugins/processing/gui/MessageBarProgress.py
index 2f039a3eef..db2aa8fa0d 100644
--- a/python/plugins/processing/gui/MessageBarProgress.py
+++ b/python/plugins/processing/gui/MessageBarProgress.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import Qt, QCoreApplication
 from qgis.PyQt.QtWidgets import QProgressBar
diff --git a/python/plugins/processing/gui/MessageDialog.py b/python/plugins/processing/gui/MessageDialog.py
index 043a0d01d0..bfc42966af 100644
--- a/python/plugins/processing/gui/MessageDialog.py
+++ b/python/plugins/processing/gui/MessageDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2014, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/MultipleFileInputDialog.py b/python/plugins/processing/gui/MultipleFileInputDialog.py
index 41a869de27..c70a74ef35 100644
--- a/python/plugins/processing/gui/MultipleFileInputDialog.py
+++ b/python/plugins/processing/gui/MultipleFileInputDialog.py
@@ -25,7 +25,7 @@ __author__ = 'Victor Olaya'
 __date__ = 'August 2012'
 __copyright__ = '(C) 2012, Victor Olaya'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/MultipleInputDialog.py b/python/plugins/processing/gui/MultipleInputDialog.py
index ed0730a7bc..c36c6938cc 100755
--- a/python/plugins/processing/gui/MultipleInputDialog.py
+++ b/python/plugins/processing/gui/MultipleInputDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/MultipleInputPanel.py b/python/plugins/processing/gui/MultipleInputPanel.py
index 41804998f3..01fb941893 100644
--- a/python/plugins/processing/gui/MultipleInputPanel.py
+++ b/python/plugins/processing/gui/MultipleInputPanel.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/NumberInputPanel.py b/python/plugins/processing/gui/NumberInputPanel.py
index d066da626b..96b8a6f341 100755
--- a/python/plugins/processing/gui/NumberInputPanel.py
+++ b/python/plugins/processing/gui/NumberInputPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/gui/ParameterGuiUtils.py b/python/plugins/processing/gui/ParameterGuiUtils.py
index 345df3fadb..25e5b5ba7b 100644
--- a/python/plugins/processing/gui/ParameterGuiUtils.py
+++ b/python/plugins/processing/gui/ParameterGuiUtils.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProcessing,
                        QgsProviderRegistry,
diff --git a/python/plugins/processing/gui/ParametersPanel.py b/python/plugins/processing/gui/ParametersPanel.py
index 267b8e136d..8e9524b744 100644
--- a/python/plugins/processing/gui/ParametersPanel.py
+++ b/python/plugins/processing/gui/ParametersPanel.py
@@ -27,7 +27,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/PointMapTool.py b/python/plugins/processing/gui/PointMapTool.py
index 88875df5b5..c9325cc51b 100644
--- a/python/plugins/processing/gui/PointMapTool.py
+++ b/python/plugins/processing/gui/PointMapTool.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import Qt, pyqtSignal
 
diff --git a/python/plugins/processing/gui/PointSelectionPanel.py b/python/plugins/processing/gui/PointSelectionPanel.py
index 70e07cd127..d9d760406f 100644
--- a/python/plugins/processing/gui/PointSelectionPanel.py
+++ b/python/plugins/processing/gui/PointSelectionPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/PostgisTableSelector.py b/python/plugins/processing/gui/PostgisTableSelector.py
index 252032f58b..3153f99af8 100644
--- a/python/plugins/processing/gui/PostgisTableSelector.py
+++ b/python/plugins/processing/gui/PostgisTableSelector.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/gui/Postprocessing.py b/python/plugins/processing/gui/Postprocessing.py
index 8ffbac024b..41a996b448 100644
--- a/python/plugins/processing/gui/Postprocessing.py
+++ b/python/plugins/processing/gui/Postprocessing.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import traceback
diff --git a/python/plugins/processing/gui/ProcessingToolbox.py b/python/plugins/processing/gui/ProcessingToolbox.py
index bb9273999d..51b4d765f7 100644
--- a/python/plugins/processing/gui/ProcessingToolbox.py
+++ b/python/plugins/processing/gui/ProcessingToolbox.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import operator
 import os
diff --git a/python/plugins/processing/gui/RangePanel.py b/python/plugins/processing/gui/RangePanel.py
index 47e0be3b28..d6345d7e0a 100644
--- a/python/plugins/processing/gui/RangePanel.py
+++ b/python/plugins/processing/gui/RangePanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/RectangleMapTool.py b/python/plugins/processing/gui/RectangleMapTool.py
index aee598fe87..6ca5e8a8ed 100644
--- a/python/plugins/processing/gui/RectangleMapTool.py
+++ b/python/plugins/processing/gui/RectangleMapTool.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import pyqtSignal
 from qgis.PyQt.QtGui import QColor
diff --git a/python/plugins/processing/gui/RenderingStyleFilePanel.py b/python/plugins/processing/gui/RenderingStyleFilePanel.py
index 3b7cd2718d..7d233af620 100644
--- a/python/plugins/processing/gui/RenderingStyleFilePanel.py
+++ b/python/plugins/processing/gui/RenderingStyleFilePanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/RenderingStyles.py b/python/plugins/processing/gui/RenderingStyles.py
index aee896ae55..d4d2773915 100644
--- a/python/plugins/processing/gui/RenderingStyles.py
+++ b/python/plugins/processing/gui/RenderingStyles.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.tools.system import userFolder
diff --git a/python/plugins/processing/gui/ResultsDock.py b/python/plugins/processing/gui/ResultsDock.py
index bf4050bd5e..a6b0ffb412 100644
--- a/python/plugins/processing/gui/ResultsDock.py
+++ b/python/plugins/processing/gui/ResultsDock.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import time
diff --git a/python/plugins/processing/gui/TestTools.py b/python/plugins/processing/gui/TestTools.py
index 4f8d69c855..fbb58ad415 100755
--- a/python/plugins/processing/gui/TestTools.py
+++ b/python/plugins/processing/gui/TestTools.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import posixpath
diff --git a/python/plugins/processing/gui/ToolboxAction.py b/python/plugins/processing/gui/ToolboxAction.py
index bfd39739ed..6453b8ccd8 100644
--- a/python/plugins/processing/gui/ToolboxAction.py
+++ b/python/plugins/processing/gui/ToolboxAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 
diff --git a/python/plugins/processing/gui/__init__.py b/python/plugins/processing/gui/__init__.py
index 9dc7831e03..931e5d0263 100644
--- a/python/plugins/processing/gui/__init__.py
+++ b/python/plugins/processing/gui/__init__.py
@@ -21,7 +21,7 @@ __author__ = 'Victor Olaya'
 __date__ = 'August 2013'
 __copyright__ = '(C) 2013, Victor Olaya'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt import uic
 import logging
diff --git a/python/plugins/processing/gui/enummodelerwidget.py b/python/plugins/processing/gui/enummodelerwidget.py
index fb71f70471..2c86cd8ee5 100644
--- a/python/plugins/processing/gui/enummodelerwidget.py
+++ b/python/plugins/processing/gui/enummodelerwidget.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/matrixmodelerwidget.py b/python/plugins/processing/gui/matrixmodelerwidget.py
index 9fc26676fa..63d0ae960a 100644
--- a/python/plugins/processing/gui/matrixmodelerwidget.py
+++ b/python/plugins/processing/gui/matrixmodelerwidget.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import warnings
diff --git a/python/plugins/processing/gui/menus.py b/python/plugins/processing/gui/menus.py
index bd1be18bdc..4616a3e3ba 100644
--- a/python/plugins/processing/gui/menus.py
+++ b/python/plugins/processing/gui/menus.py
@@ -21,7 +21,7 @@ __author__ = 'Victor Olaya'
 __date__ = 'February 2016'
 __copyright__ = '(C) 2016, Victor Olaya'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/python/plugins/processing/gui/wrappers.py b/python/plugins/processing/gui/wrappers.py
index 82804a0d50..35cfc8fe9a 100755
--- a/python/plugins/processing/gui/wrappers.py
+++ b/python/plugins/processing/gui/wrappers.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2016, Arnaud Morvan'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import locale
 import os
diff --git a/python/plugins/processing/modeler/AddModelFromFileAction.py b/python/plugins/processing/modeler/AddModelFromFileAction.py
index 0449063deb..4eb0f15843 100644
--- a/python/plugins/processing/modeler/AddModelFromFileAction.py
+++ b/python/plugins/processing/modeler/AddModelFromFileAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 201, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import shutil
diff --git a/python/plugins/processing/modeler/CreateNewModelAction.py b/python/plugins/processing/modeler/CreateNewModelAction.py
index 635400b1ff..b13f2bad83 100644
--- a/python/plugins/processing/modeler/CreateNewModelAction.py
+++ b/python/plugins/processing/modeler/CreateNewModelAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/modeler/DeleteModelAction.py b/python/plugins/processing/modeler/DeleteModelAction.py
index 58ddc832f9..a2ad16b8e2 100644
--- a/python/plugins/processing/modeler/DeleteModelAction.py
+++ b/python/plugins/processing/modeler/DeleteModelAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.core import (QgsApplication,
diff --git a/python/plugins/processing/modeler/EditModelAction.py b/python/plugins/processing/modeler/EditModelAction.py
index 0cad4c393f..e03338bb02 100644
--- a/python/plugins/processing/modeler/EditModelAction.py
+++ b/python/plugins/processing/modeler/EditModelAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 from qgis.core import QgsApplication, QgsProcessingModelAlgorithm
diff --git a/python/plugins/processing/modeler/ModelerAlgorithmProvider.py b/python/plugins/processing/modeler/ModelerAlgorithmProvider.py
index 7088853810..6772db33f3 100644
--- a/python/plugins/processing/modeler/ModelerAlgorithmProvider.py
+++ b/python/plugins/processing/modeler/ModelerAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/modeler/ModelerDialog.py b/python/plugins/processing/modeler/ModelerDialog.py
index d07662f59b..7dde8b0fa2 100644
--- a/python/plugins/processing/modeler/ModelerDialog.py
+++ b/python/plugins/processing/modeler/ModelerDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import codecs
 import sys
diff --git a/python/plugins/processing/modeler/ModelerGraphicItem.py b/python/plugins/processing/modeler/ModelerGraphicItem.py
index f538a939f3..9c257c7fc6 100644
--- a/python/plugins/processing/modeler/ModelerGraphicItem.py
+++ b/python/plugins/processing/modeler/ModelerGraphicItem.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import math
diff --git a/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py b/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py
index 6d6eedad31..431deeaf01 100755
--- a/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py
+++ b/python/plugins/processing/modeler/ModelerParameterDefinitionDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import math
 
diff --git a/python/plugins/processing/modeler/ModelerParametersDialog.py b/python/plugins/processing/modeler/ModelerParametersDialog.py
index 75abb8bd31..22ce203c8e 100644
--- a/python/plugins/processing/modeler/ModelerParametersDialog.py
+++ b/python/plugins/processing/modeler/ModelerParametersDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import webbrowser
 
diff --git a/python/plugins/processing/modeler/ModelerScene.py b/python/plugins/processing/modeler/ModelerScene.py
index 7d7ce4468a..058477c413 100644
--- a/python/plugins/processing/modeler/ModelerScene.py
+++ b/python/plugins/processing/modeler/ModelerScene.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QPointF, Qt
 from qgis.PyQt.QtWidgets import QGraphicsItem, QGraphicsScene
diff --git a/python/plugins/processing/modeler/ModelerUtils.py b/python/plugins/processing/modeler/ModelerUtils.py
index 7dc4d31255..4da2d481b4 100644
--- a/python/plugins/processing/modeler/ModelerUtils.py
+++ b/python/plugins/processing/modeler/ModelerUtils.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from processing.tools.system import userFolder, mkdir
diff --git a/python/plugins/processing/modeler/MultilineTextPanel.py b/python/plugins/processing/modeler/MultilineTextPanel.py
index ae02dfdf64..19a28346c2 100644
--- a/python/plugins/processing/modeler/MultilineTextPanel.py
+++ b/python/plugins/processing/modeler/MultilineTextPanel.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtWidgets import QComboBox, QPlainTextEdit, QSizePolicy, QVBoxLayout, QWidget
 
diff --git a/python/plugins/processing/modeler/OpenModelFromFileAction.py b/python/plugins/processing/modeler/OpenModelFromFileAction.py
index e92dee898f..05247de443 100644
--- a/python/plugins/processing/modeler/OpenModelFromFileAction.py
+++ b/python/plugins/processing/modeler/OpenModelFromFileAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.PyQt.QtWidgets import QFileDialog
diff --git a/python/plugins/processing/modeler/ProjectProvider.py b/python/plugins/processing/modeler/ProjectProvider.py
index e25b5404b1..8904ba483f 100644
--- a/python/plugins/processing/modeler/ProjectProvider.py
+++ b/python/plugins/processing/modeler/ProjectProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (Qgis,
                        QgsApplication,
diff --git a/python/plugins/processing/preconfigured/DeletePreconfiguredAlgorithmAction.py b/python/plugins/processing/preconfigured/DeletePreconfiguredAlgorithmAction.py
index 3b036bfd87..bfa3075468 100644
--- a/python/plugins/processing/preconfigured/DeletePreconfiguredAlgorithmAction.py
+++ b/python/plugins/processing/preconfigured/DeletePreconfiguredAlgorithmAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/python/plugins/processing/preconfigured/NewPreconfiguredAlgorithmAction.py b/python/plugins/processing/preconfigured/NewPreconfiguredAlgorithmAction.py
index 6b8857fa94..d4d67bf531 100644
--- a/python/plugins/processing/preconfigured/NewPreconfiguredAlgorithmAction.py
+++ b/python/plugins/processing/preconfigured/NewPreconfiguredAlgorithmAction.py
@@ -24,7 +24,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 from processing.core.GeoAlgorithm import GeoAlgorithm
diff --git a/python/plugins/processing/preconfigured/PreconfiguredAlgorithm.py b/python/plugins/processing/preconfigured/PreconfiguredAlgorithm.py
index 9144297fca..3a7899ca8e 100644
--- a/python/plugins/processing/preconfigured/PreconfiguredAlgorithm.py
+++ b/python/plugins/processing/preconfigured/PreconfiguredAlgorithm.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/preconfigured/PreconfiguredAlgorithmDialog.py b/python/plugins/processing/preconfigured/PreconfiguredAlgorithmDialog.py
index a7053c8492..ea65e3a04d 100644
--- a/python/plugins/processing/preconfigured/PreconfiguredAlgorithmDialog.py
+++ b/python/plugins/processing/preconfigured/PreconfiguredAlgorithmDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/python/plugins/processing/preconfigured/PreconfiguredAlgorithmProvider.py b/python/plugins/processing/preconfigured/PreconfiguredAlgorithmProvider.py
index 4c3717798e..8aee1ec72e 100644
--- a/python/plugins/processing/preconfigured/PreconfiguredAlgorithmProvider.py
+++ b/python/plugins/processing/preconfigured/PreconfiguredAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/script/AddScriptFromFileAction.py b/python/plugins/processing/script/AddScriptFromFileAction.py
index 1e7eb0a505..576d66378e 100644
--- a/python/plugins/processing/script/AddScriptFromFileAction.py
+++ b/python/plugins/processing/script/AddScriptFromFileAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 201, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import shutil
diff --git a/python/plugins/processing/script/AddScriptFromTemplateAction.py b/python/plugins/processing/script/AddScriptFromTemplateAction.py
index 3d99b23fd2..75bd986a2e 100644
--- a/python/plugins/processing/script/AddScriptFromTemplateAction.py
+++ b/python/plugins/processing/script/AddScriptFromTemplateAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Matteo Ghetta'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/script/CreateNewScriptAction.py b/python/plugins/processing/script/CreateNewScriptAction.py
index 0b3be37941..20b8e56d68 100644
--- a/python/plugins/processing/script/CreateNewScriptAction.py
+++ b/python/plugins/processing/script/CreateNewScriptAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/script/DeleteScriptAction.py b/python/plugins/processing/script/DeleteScriptAction.py
index 4c5bc255d3..0b4838dfc7 100644
--- a/python/plugins/processing/script/DeleteScriptAction.py
+++ b/python/plugins/processing/script/DeleteScriptAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/script/EditScriptAction.py b/python/plugins/processing/script/EditScriptAction.py
index 0ce599149a..f7792e918c 100644
--- a/python/plugins/processing/script/EditScriptAction.py
+++ b/python/plugins/processing/script/EditScriptAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import inspect
 
diff --git a/python/plugins/processing/script/OpenScriptFromFileAction.py b/python/plugins/processing/script/OpenScriptFromFileAction.py
index d4a3a24967..4fce0bdeb2 100644
--- a/python/plugins/processing/script/OpenScriptFromFileAction.py
+++ b/python/plugins/processing/script/OpenScriptFromFileAction.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.PyQt.QtWidgets import QFileDialog
diff --git a/python/plugins/processing/script/ScriptAlgorithmProvider.py b/python/plugins/processing/script/ScriptAlgorithmProvider.py
index 3d13d22565..c803c8f592 100644
--- a/python/plugins/processing/script/ScriptAlgorithmProvider.py
+++ b/python/plugins/processing/script/ScriptAlgorithmProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/script/ScriptEdit.py b/python/plugins/processing/script/ScriptEdit.py
index dcc5a5feda..b69d8df00e 100644
--- a/python/plugins/processing/script/ScriptEdit.py
+++ b/python/plugins/processing/script/ScriptEdit.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/python/plugins/processing/script/ScriptEditorDialog.py b/python/plugins/processing/script/ScriptEditorDialog.py
index a50485cd6f..a34c9013ce 100644
--- a/python/plugins/processing/script/ScriptEditorDialog.py
+++ b/python/plugins/processing/script/ScriptEditorDialog.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import codecs
diff --git a/python/plugins/processing/script/ScriptUtils.py b/python/plugins/processing/script/ScriptUtils.py
index fc234e975a..a86d8555b9 100644
--- a/python/plugins/processing/script/ScriptUtils.py
+++ b/python/plugins/processing/script/ScriptUtils.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import inspect
diff --git a/python/plugins/processing/tests/CheckValidityAlgorithm.py b/python/plugins/processing/tests/CheckValidityAlgorithm.py
index 86d82b6307..b616479719 100644
--- a/python/plugins/processing/tests/CheckValidityAlgorithm.py
+++ b/python/plugins/processing/tests/CheckValidityAlgorithm.py
@@ -10,7 +10,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '2018-09'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication, QVariant
 from qgis.core import (
diff --git a/python/plugins/processing/tests/GuiTest.py b/python/plugins/processing/tests/GuiTest.py
index 8cdb9fee11..0a46ea86d1 100644
--- a/python/plugins/processing/tests/GuiTest.py
+++ b/python/plugins/processing/tests/GuiTest.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2017, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.testing import start_app, unittest
 from qgis.core import (QgsApplication,
diff --git a/python/plugins/processing/tests/ModelerTest.py b/python/plugins/processing/tests/ModelerTest.py
index 118cb6025c..5a0221fbad 100755
--- a/python/plugins/processing/tests/ModelerTest.py
+++ b/python/plugins/processing/tests/ModelerTest.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.testing import start_app, unittest
 
diff --git a/python/plugins/processing/tests/ProjectProvider.py b/python/plugins/processing/tests/ProjectProvider.py
index 2c93a8bc5a..77c5b7e440 100755
--- a/python/plugins/processing/tests/ProjectProvider.py
+++ b/python/plugins/processing/tests/ProjectProvider.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2018, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.testing import start_app, unittest
 from qgis.PyQt.QtCore import QTemporaryFile
diff --git a/python/plugins/processing/tests/TestData.py b/python/plugins/processing/tests/TestData.py
index 38e323637c..12b45171cd 100644
--- a/python/plugins/processing/tests/TestData.py
+++ b/python/plugins/processing/tests/TestData.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os.path
 
diff --git a/python/plugins/processing/tests/ToolsTest.py b/python/plugins/processing/tests/ToolsTest.py
index d613f2cbfc..43a8dd69b7 100644
--- a/python/plugins/processing/tests/ToolsTest.py
+++ b/python/plugins/processing/tests/ToolsTest.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2016, Nyall Dawson'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import shutil
diff --git a/python/plugins/processing/tests/testdata/grass7_algorithms_raster_tests.yaml b/python/plugins/processing/tests/testdata/grass7_algorithms_raster_tests.yaml
index b14a6e4ae3..66b12ef9d2 100644
--- a/python/plugins/processing/tests/testdata/grass7_algorithms_raster_tests.yaml
+++ b/python/plugins/processing/tests/testdata/grass7_algorithms_raster_tests.yaml
@@ -461,41 +461,87 @@ tests:
         hash: 95e064f05759606bc60f1dfa88931f545c066629c1f07919156ac03b
         type: rasterhash
 
-  - algorithm: grass7:r.sun
-    name: GRASS7 r.sun
+  - algorithm: grass7:r.sun.insoltime
+    name: GRASS7 r.sun (insoltime)
     params:
       -m: false
       -p: false
+      GRASS_RASTER_FORMAT_META: ''
+      GRASS_RASTER_FORMAT_OPT: ''
       GRASS_REGION_CELLSIZE_PARAMETER: 0.0
-      GRASS_REGION_PARAMETER: 344500.0,358400.0,6682800.0,6693700.0
+      albedo_value: 0.2
       aspect:
-        name: custom/grass7/float_raster.tif
+        name: custom/grass7/raster_6class.tif
         type: raster
+      aspect_value: 270.0
       day: 1
-      declination: 0.0
       distance_step: 1.0
       elevation:
-        name: custom/grass7/raster_6class.tif
+        name: custom/grass7/float_raster.tif
         type: raster
+      npartitions: 1
       slope:
         name: custom/grass7/float_raster.tif
         type: raster
+      slope_value: 0.0
       step: 0.5
     results:
       beam_rad:
-        hash: c43a64c35cd5999888b1dc7099249a54f37df8658cbe9c30b92627e5
+        hash: 4428e6601576375c17cb0d37f74e3317db218b9660d3e9483f444279
         type: rasterhash
       diff_rad:
-        hash: ecaa83578ab6eaf24a48f2fc265e8f1deff743c145af9c85cd39bceb
+        hash: a05bb9e71f3a539b74a07235b5873738d3049960c8b2b5fd37cc7826
         type: rasterhash
       glob_rad:
-        hash: 3917bc5633ce2225c864055d4b3c952b87461cbe48093b8fd9738215
+        hash: 511d713ab666e171167a9a137ea246eefc90042e149ded73281362fa
         type: rasterhash
       insol_time:
-        hash: 64851f59edafe67d007da78f33b7491b949d5be3eca83ef513e2b11f
+        hash: 45954c661088e55d7740f7b9b89e21217a34d25868f751e8d0a67d31
+        type: rasterhash
+      refl_rad:
+        hash: 278011afa98bcdfd87a2c476bc4abac96266a2a13ac9d20696733941
+        type: rasterhash
+
+  - algorithm: grass7:r.sun.incidout
+    name: GRASS7 r.sun (incidout)
+    params:
+      -m: false
+      -p: false
+      GRASS_RASTER_FORMAT_META: ''
+      GRASS_RASTER_FORMAT_OPT: ''
+      GRASS_REGION_CELLSIZE_PARAMETER: 0.0
+      albedo_value: 0.2
+      aspect:
+        name: custom/grass7/raster_6class.tif
+        type: raster
+      aspect_value: 270.0
+      day: 1
+      distance_step: 1.0
+      elevation:
+        name: custom/grass7/float_raster.tif
+        type: raster
+      npartitions: 1
+      slope:
+        name: custom/grass7/float_raster.tif
+        type: raster
+      slope_value: 0.0
+      step: 0.5
+      time: 8.0
+    results:
+      beam_rad:
+        hash: b2459789ef2f04adc13a02d016f314594eaaf6f89e42fdf35d06e46b
+        type: rasterhash
+      diff_rad:
+        hash: 7dbe38013812f372389f1ce1b60eae6755e005326e2373472ec65443
+        type: rasterhash
+      glob_rad:
+        hash: 41e68104b039b794efb580a52c79e61af84261f9fad8b2aaedce0316
+        type: rasterhash
+      incidout:
+        hash: 5cd5e5a410da7593d2e0d3ad3cb01818cebddfb73d0439fcf8b30d05
         type: rasterhash
       refl_rad:
-        hash: cd2002486c5117db9c493e365ff6983faf1ea92b1bbea87569d3ebdd
+        hash: 5ac2d870ae11d726a16809cda2915b248f0180f3eedc0c7a4c8d8de5
         type: rasterhash
 
 #  - algorithm: grass7:r.stats.quantile.out
diff --git a/python/plugins/processing/tools/__init__.py b/python/plugins/processing/tools/__init__.py
index bfd2e56799..d398d56b00 100644
--- a/python/plugins/processing/tools/__init__.py
+++ b/python/plugins/processing/tools/__init__.py
@@ -23,4 +23,4 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
diff --git a/python/plugins/processing/tools/dataobjects.py b/python/plugins/processing/tools/dataobjects.py
index ab60665c66..dd12c62f6d 100644
--- a/python/plugins/processing/tools/dataobjects.py
+++ b/python/plugins/processing/tools/dataobjects.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/python/plugins/processing/tools/general.py b/python/plugins/processing/tools/general.py
index 0347250b34..49df8f08ed 100644
--- a/python/plugins/processing/tools/general.py
+++ b/python/plugins/processing/tools/general.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import configparser
diff --git a/python/plugins/processing/tools/postgis.py b/python/plugins/processing/tools/postgis.py
index 8dccc409a9..e5cda18019 100644
--- a/python/plugins/processing/tools/postgis.py
+++ b/python/plugins/processing/tools/postgis.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Martin Dobias'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import psycopg2
 import psycopg2.extensions  # For isolation levels
diff --git a/python/plugins/processing/tools/raster.py b/python/plugins/processing/tools/raster.py
index 449697441d..34d853722d 100644
--- a/python/plugins/processing/tools/raster.py
+++ b/python/plugins/processing/tools/raster.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya  and Alexander Bruy'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import struct
diff --git a/python/plugins/processing/tools/spatialite.py b/python/plugins/processing/tools/spatialite.py
index e143c1c080..c0a40d1df4 100644
--- a/python/plugins/processing/tools/spatialite.py
+++ b/python/plugins/processing/tools/spatialite.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2015, René-Luc Dhont'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.utils import spatialite_connect
 import sqlite3 as sqlite
diff --git a/python/plugins/processing/tools/system.py b/python/plugins/processing/tools/system.py
index ed0c76c724..70a80545d2 100644
--- a/python/plugins/processing/tools/system.py
+++ b/python/plugins/processing/tools/system.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import time
diff --git a/python/plugins/processing/tools/vector.py b/python/plugins/processing/tools/vector.py
index 5dfb6b7afa..bdf18d1669 100644
--- a/python/plugins/processing/tools/vector.py
+++ b/python/plugins/processing/tools/vector.py
@@ -23,7 +23,7 @@ __copyright__ = '(C) 2013, Victor Olaya'
 
 # This will get replaced with a git SHA1 when you do a git archive
 
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (NULL,
                        QgsFeatureRequest)
diff --git a/python/pyplugin_installer/__init__.py b/python/pyplugin_installer/__init__.py
index d2c18e4b47..8805823ed4 100644
--- a/python/pyplugin_installer/__init__.py
+++ b/python/pyplugin_installer/__init__.py
@@ -26,7 +26,7 @@ __author__ = 'Borys Jurgiel'
 __date__ = 'May 2013'
 __copyright__ = '(C) 2013, Borys Jurgiel'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 # import functions for easier access
diff --git a/python/server/auto_generated/qgsstorebadlayerinfo.sip.in b/python/server/auto_generated/qgsstorebadlayerinfo.sip.in
new file mode 100644
index 0000000000..84e9826dbb
--- /dev/null
+++ b/python/server/auto_generated/qgsstorebadlayerinfo.sip.in
@@ -0,0 +1,51 @@
+/************************************************************************
+ * This file has been generated automatically from                      *
+ *                                                                      *
+ * src/server/qgsstorebadlayerinfo.h                                    *
+ *                                                                      *
+ * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
+ ************************************************************************/
+
+
+
+class QgsStoreBadLayerInfo: QgsProjectBadLayerHandler
+{
+%Docstring
+Stores layer ids of bad layers
+
+.. versionadded:: 3.4.8
+%End
+
+%TypeHeaderCode
+#include "qgsstorebadlayerinfo.h"
+%End
+  public:
+
+    QgsStoreBadLayerInfo();
+%Docstring
+Default constructor
+%End
+
+    void handleBadLayers( const QList<QDomNode> &layers );
+%Docstring
+handleBadLayers
+
+:param layers: layer nodes
+%End
+
+    QStringList badLayers() const;
+%Docstring
+badLayers
+
+:return: ids of bad layers
+%End
+
+};
+
+/************************************************************************
+ * This file has been generated automatically from                      *
+ *                                                                      *
+ * src/server/qgsstorebadlayerinfo.h                                    *
+ *                                                                      *
+ * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
+ ************************************************************************/
diff --git a/python/server/server_auto.sip b/python/server/server_auto.sip
index 05c9c613b1..899c55b5be 100644
--- a/python/server/server_auto.sip
+++ b/python/server/server_auto.sip
@@ -22,6 +22,7 @@
 %Include auto_generated/qgsserviceregistry.sip
 %Include auto_generated/qgsfeaturefilterprovidergroup.sip
 %Include auto_generated/qgsfeaturefilter.sip
+%Include auto_generated/qgsstorebadlayerinfo.sip
 %If ( HAVE_SERVER_PYTHON_PLUGINS )
 %Include auto_generated/qgsserverfilter.sip
 %End
diff --git a/python/user.py b/python/user.py
index dc7e332afa..1b5997afd5 100644
--- a/python/user.py
+++ b/python/user.py
@@ -21,7 +21,7 @@ __author__ = 'Nathan Woodrow'
 __date__ = 'January 2015'
 __copyright__ = '(C) 2015, Nathan Woodrow'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import sys
diff --git a/python/utils.py b/python/utils.py
index 2d32b79c93..9af3e9e885 100644
--- a/python/utils.py
+++ b/python/utils.py
@@ -21,7 +21,7 @@ __author__ = 'Martin Dobias'
 __date__ = 'November 2009'
 __copyright__ = '(C) 2009, Martin Dobias'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 """
 QGIS utilities module
diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
index f1e755c598..00d0ff076d 100644
--- a/resources/CMakeLists.txt
+++ b/resources/CMakeLists.txt
@@ -5,6 +5,12 @@ INSTALL(FILES srs.db
               customization.xml
               2to3migration.txt
               qgis_global_settings.ini
+              compdcs.csv
+              datum_shift.csv
+              gcs.csv
+              geoccs.csv
+              pcs.csv
+              vertcs.csv
         DESTINATION ${QGIS_DATA_DIR}/resources)
 INSTALL(DIRECTORY cpt-city-qgis-min DESTINATION ${QGIS_DATA_DIR}/resources)
 INSTALL(DIRECTORY themes DESTINATION ${QGIS_DATA_DIR}/resources)
diff --git a/resources/compdcs.csv b/resources/compdcs.csv
new file mode 100644
index 0000000000..7681578480
--- /dev/null
+++ b/resources/compdcs.csv
@@ -0,0 +1,159 @@
+"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","CMPD_HORIZCRS_CODE","CMPD_VERTCRS_CODE","SHOW_CRS","DEPRECATED"
+3901,"KKJ / Finland Uniform Coordinate System + N60 height",2393,5717,1,0
+3902,"ETRS89 / TM35FIN(N,E) + N60 height",5048,5717,1,0
+3903,"ETRS89 / TM35FIN(N,E) + N2000 height",5048,3900,1,0
+4097,"ETRS89 / DKTM1 + DVR90 height",4093,5799,1,0
+4098,"ETRS89 / DKTM2 + DVR90 height",4094,5799,1,0
+4099,"ETRS89 / DKTM3 + DVR90 height",4095,5799,1,0
+4100,"ETRS89 / DKTM4 + DVR90 height",4096,5799,1,0
+5318,"ETRS89 / Faroe TM + FVR09 height",5316,5317,1,0
+5498,"NAD83 + NAVD88 height",4269,5703,1,0
+5499,"NAD83(HARN) + NAVD88 height",4152,5703,1,0
+5500,"NAD83(NSRS2007) + NAVD88 height",4759,5703,1,0
+5554,"ETRS89 / UTM zone 31N + DHHN92 height",25831,5783,1,0
+5555,"ETRS89 / UTM zone 32N + DHHN92 height",25832,5783,1,0
+5556,"ETRS89 / UTM zone 33N + DHHN92 height",25833,5783,1,0
+5598,"FEH2010 / Fehmarnbelt TM + FCSVR10 height",5596,5597,1,0
+5628,"SWEREF99 + RH2000 height",4619,5613,1,0
+5698,"RGF93 / Lambert-93 + NGF-IGN69 height",2154,5720,1,0
+5699,"RGF93 / Lambert-93 + NGF-IGN78 height",2154,5721,1,0
+5707,"NTF (Paris) / Lambert zone I + NGF-IGN69 height",27571,5720,1,0
+5708,"NTF (Paris) / Lambert zone IV + NGF-IGN78 height",27574,5721,1,0
+5832,"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N) + DHHN92 height",5682,5783,1,0
+5833,"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N) + DHHN92 height",5683,5783,1,0
+5834,"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height",5684,5783,1,0
+5835,"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N) + DHHN92 height",5685,5783,1,0
+5845,"SWEREF99 TM + RH2000 height",3006,5613,1,0
+5846,"SWEREF99 12 00 + RH2000 height",3007,5613,1,0
+5847,"SWEREF99 13 30 + RH2000 height",3008,5613,1,0
+5848,"SWEREF99 15 00 + RH2000 height",3009,5613,1,0
+5849,"SWEREF99 16 30 + RH2000 height",3010,5613,1,0
+5850,"SWEREF99 18 00 + RH2000 height",3011,5613,1,0
+5851,"SWEREF99 14 15 + RH2000 height",3012,5613,1,0
+5852,"SWEREF99 15 45 + RH2000 height",3013,5613,1,0
+5853,"SWEREF99 17 15 + RH2000 height",3014,5613,1,0
+5854,"SWEREF99 18 45 + RH2000 height",3015,5613,1,0
+5855,"SWEREF99 20 15 + RH2000 height",3016,5613,1,0
+5856,"SWEREF99 21 45 + RH2000 height",3017,5613,1,0
+5857,"SWEREF99 23 15 + RH2000 height",3018,5613,1,0
+5942,"ETRS89 + NN2000 height",4258,5941,1,0
+5945,"ETRS89 / NTM zone 5 + NN2000 height",5105,5941,1,0
+5946,"ETRS89 / NTM zone 6 + NN2000 height",5106,5941,1,0
+5947,"ETRS89 / NTM zone 7 + NN2000 height",5107,5941,1,0
+5948,"ETRS89 / NTM zone 8 + NN2000 height",5108,5941,1,0
+5949,"ETRS89 / NTM zone 9 + NN2000 height",5109,5941,1,0
+5950,"ETRS89 / NTM zone 10 + NN2000 height",5110,5941,1,0
+5951,"ETRS89 / NTM zone 11 + NN2000 height",5111,5941,1,0
+5952,"ETRS89 / NTM zone 12 + NN2000 height",5112,5941,1,0
+5953,"ETRS89 / NTM zone 13 + NN2000 height",5113,5941,1,0
+5954,"ETRS89 / NTM zone 14 + NN2000 height",5114,5941,1,0
+5955,"ETRS89 / NTM zone 15 + NN2000 height",5115,5941,1,0
+5956,"ETRS89 / NTM zone 16 + NN2000 height",5116,5941,1,0
+5957,"ETRS89 / NTM zone 17 + NN2000 height",5117,5941,1,0
+5958,"ETRS89 / NTM zone 18 + NN2000 height",5118,5941,1,0
+5959,"ETRS89 / NTM zone 19 + NN2000 height",5119,5941,1,0
+5960,"ETRS89 / NTM zone 20 + NN2000 height",5120,5941,1,0
+5961,"ETRS89 / NTM zone 21 + NN2000 height",5121,5941,1,0
+5962,"ETRS89 / NTM zone 22 + NN2000 height",5122,5941,1,0
+5963,"ETRS89 / NTM zone 23 + NN2000 height",5123,5941,1,0
+5964,"ETRS89 / NTM zone 24 + NN2000 height",5124,5941,1,0
+5965,"ETRS89 / NTM zone 25 + NN2000 height",5125,5941,1,0
+5966,"ETRS89 / NTM zone 26 + NN2000 height",5126,5941,1,0
+5967,"ETRS89 / NTM zone 27 + NN2000 height",5127,5941,1,0
+5968,"ETRS89 / NTM zone 28 + NN2000 height",5128,5941,1,0
+5969,"ETRS89 / NTM zone 29 + NN2000 height",5129,5941,1,0
+5970,"ETRS89 / NTM zone 30 + NN2000 height",5130,5941,1,0
+5971,"ETRS89 / UTM zone 31 + NN2000 height",25831,5941,1,0
+5972,"ETRS89 / UTM zone 32 + NN2000 height",25832,5941,1,0
+5973,"ETRS89 / UTM zone 33 + NN2000 height",25833,5941,1,0
+5974,"ETRS89 / UTM zone 34 + NN2000 height",25834,5941,1,0
+5975,"ETRS89 / UTM zone 35 + NN2000 height",25835,5941,1,0
+5976,"ETRS89 / UTM zone 36 + NN2000 height",25836,5941,1,0
+6144,"ETRS89 + NN54 height",4258,5776,1,0
+6145,"ETRS89 / NTM zone 5 + NN54 height",5105,5776,1,0
+6146,"ETRS89 / NTM zone 6 + NN54 height",5106,5776,1,0
+6147,"ETRS89 / NTM zone 7 + NN54 height",5107,5776,1,0
+6148,"ETRS89 / NTM zone 8 + NN54 height",5108,5776,1,0
+6149,"ETRS89 / NTM zone 9 + NN54 height",5109,5776,1,0
+6150,"ETRS89 / NTM zone 10 + NN54 height",5110,5776,1,0
+6151,"ETRS89 / NTM zone 11 + NN54 height",5111,5776,1,0
+6152,"ETRS89 / NTM zone 12 + NN54 height",5112,5776,1,0
+6153,"ETRS89 / NTM zone 13 + NN54 height",5113,5776,1,0
+6154,"ETRS89 / NTM zone 14 + NN54 height",5114,5776,1,0
+6155,"ETRS89 / NTM zone 15 + NN54 height",5115,5776,1,0
+6156,"ETRS89 / NTM zone 16 + NN54 height",5116,5776,1,0
+6157,"ETRS89 / NTM zone 17 + NN54 height",5117,5776,1,0
+6158,"ETRS89 / NTM zone 18 + NN54 height",5118,5776,1,0
+6159,"ETRS89 / NTM zone 19 + NN54 height",5119,5776,1,0
+6160,"ETRS89 / NTM zone 20 + NN54 height",5120,5776,1,0
+6161,"ETRS89 / NTM zone 21 + NN54 height",5121,5776,1,0
+6162,"ETRS89 / NTM zone 22 + NN54 height",5122,5776,1,0
+6163,"ETRS89 / NTM zone 23 + NN54 height",5123,5776,1,0
+6164,"ETRS89 / NTM zone 24 + NN54 height",5124,5776,1,0
+6165,"ETRS89 / NTM zone 25 + NN54 height",5125,5776,1,0
+6166,"ETRS89 / NTM zone 26 + NN54 height",5126,5776,1,0
+6167,"ETRS89 / NTM zone 27 + NN54 height",5127,5776,1,0
+6168,"ETRS89 / NTM zone 28 + NN54 height",5128,5776,1,0
+6169,"ETRS89 / NTM zone 29 + NN54 height",5129,5776,1,0
+6170,"ETRS89 / NTM zone 30 + NN54 height",5130,5776,1,0
+6171,"ETRS89 / UTM zone 31 + NN54 height",25831,5776,1,0
+6172,"ETRS89 / UTM zone 32 + NN54 height",25832,5776,1,0
+6173,"ETRS89 / UTM zone 33 + NN54 height",25833,5776,1,0
+6174,"ETRS89 / UTM zone 34 + NN54 height",25834,5776,1,0
+6175,"ETRS89 / UTM zone 35 + NN54 height",25835,5776,1,0
+6176,"ETRS89 / UTM zone 36 + NN54 height",25836,5776,1,0
+6190,"Belge 1972 / Belgian Lambert 72 + Ostend height",31370,5710,1,0
+6349,"NAD83(2011) + NAVD88 height",6318,5703,1,0
+6649,"NAD83(CSRS) + CGVD2013 height",4617,6647,1,0
+6650,"NAD83(CSRS) / UTM zone 7N + CGVD2013 height",3154,6647,1,0
+6651,"NAD83(CSRS) / UTM zone 8N + CGVD2013 height",3155,6647,1,0
+6652,"NAD83(CSRS) / UTM zone 9N + CGVD2013 height",3156,6647,1,0
+6653,"NAD83(CSRS) / UTM zone 10N + CGVD2013 height",3157,6647,1,0
+6654,"NAD83(CSRS) / UTM zone 11N + CGVD2013 height",2955,6647,1,0
+6655,"NAD83(CSRS) / UTM zone 12N + CGVD2013 height",2956,6647,1,0
+6656,"NAD83(CSRS) / UTM zone 13N + CGVD2013 height",2957,6647,1,0
+6657,"NAD83(CSRS) / UTM zone 14N + CGVD2013 height",3158,6647,1,0
+6658,"NAD83(CSRS) / UTM zone 15N + CGVD2013 height",3159,6647,1,0
+6659,"NAD83(CSRS) / UTM zone 16N + CGVD2013 height",3160,6647,1,0
+6660,"NAD83(CSRS) / UTM zone 17N + CGVD2013 height",2958,6647,1,0
+6661,"NAD83(CSRS) / UTM zone 18N + CGVD2013 height",2959,6647,1,0
+6662,"NAD83(CSRS) / UTM zone 19N + CGVD2013 height",2960,6647,1,0
+6663,"NAD83(CSRS) / UTM zone 20N + CGVD2013 height",2961,6647,1,0
+6664,"NAD83(CSRS) / UTM zone 21N + CGVD2013 height",2962,6647,1,0
+6665,"NAD83(CSRS) / UTM zone 22N + CGVD2013 height",3761,6647,1,0
+6696,"JGD2000 + JGD2000 (vertical) height",4612,6694,1,0
+6697,"JGD2011 + JGD2011 (vertical) height",6668,6695,1,0
+6700,"Tokyo + JSLD72 height",4301,6693,1,0
+6871,"WGS 84 / Pseudo-Mercator +  EGM2008 geoid height",3857,3855,1,1
+6893,"WGS 84 / World Mercator +  EGM2008 height",3395,3855,1,0
+6917,"SVY21 + SHD height",4757,6916,1,0
+6927,"SVY21 / Singapore TM + SHD height",3414,6916,1,0
+7400,"NTF (Paris) + NGF IGN69 height",4807,5720,1,0
+7401,"NTF (Paris) / France II + NGF Lallemand",27582,5719,1,1
+7402,"NTF (Paris) / France II + NGF IGN69",27582,5720,1,1
+7403,"NTF (Paris) / France III + NGF IGN69",27583,5720,1,1
+7404,"RT90 + RH70 height",4124,5718,1,0
+7405,"OSGB 1936 / British National Grid + ODN height",27700,5701,1,0
+7406,"NAD27 + NGVD29 height",4267,5702,1,0
+7407,"NAD27 / Texas North + NGVD29 height",32037,5702,1,0
+7408,"RD/NAP",4289,5709,1,1
+7409,"ETRS89 + EVRF2000 height",4258,5730,1,0
+7410,PSHD93,4134,5724,1,0
+7411,"NTF (Paris) / Lambert zone II + NGF Lallemand height",27572,5719,1,0
+7412,"NTF (Paris) / Lambert zone II + NGF IGN69",27572,5719,1,1
+7413,"NTF (Paris) / Lambert zone III + NGF IGN69",27573,5719,1,1
+7414,"Tokyo + JSLD69 height",4301,5723,1,0
+7415,"Amersfoort / RD New + NAP height",28992,5709,1,0
+7416,"ETRS89 / UTM zone 32N + DVR90 height",25832,5799,1,0
+7417,"ETRS89 / UTM zone 33N + DVR90 height",25833,5799,1,0
+7418,"ETRS89 / Kp2000 Jutland + DVR90 height",2196,5799,1,0
+7419,"ETRS89 / Kp2000 Zealand + DVR90 height",2197,5799,1,0
+7420,"ETRS89 / Kp2000 Bornholm + DVR90 height",2198,5799,1,0
+7421,"NTF (Paris) / Lambert zone II + NGF-IGN69 height",27572,5720,1,0
+7422,"NTF (Paris) / Lambert zone III + NGF-IGN69 height",27573,5720,1,0
+7423,"ETRS89 + EVRF2007 height",4258,5621,1,0
+7954,"Astro DOS 71 / UTM zone 30S + Jamestown 1971 height",7878,7888,1,0
+7955,"St. Helena Tritan / UTM zone 30S +  Tritan 2011 height",7883,7889,1,0
+7956,"SHMG2015 +  SHVD2015 height",7887,7890,1,0
+8349,"GR96 + GVR2000 height",4747,8266,1,0
+8350,"GR96 + GVR2016 height",4747,8267,1,0
diff --git a/resources/datum_shift.csv b/resources/datum_shift.csv
new file mode 100644
index 0000000000..95486fee14
--- /dev/null
+++ b/resources/datum_shift.csv
@@ -0,0 +1,837 @@
+"SEQ_KEY","COORD_OP_CODE","SOURCE_CRS_CODE","TARGET_CRS_CODE","REMARKS","COORD_OP_SCOPE","AREA_OF_USE_CODE","AREA_SOUTH_BOUND_LAT","AREA_NORTH_BOUND_LAT","AREA_WEST_BOUND_LON","AREA_EAST_BOUND_LON","SHOW_OPERATION","DEPRECATED","COORD_OP_METHOD_CODE","DX","DY","DZ","RX","RY","RZ","DS","PREFERRED"
+1,1825,4611,4326,Published 1st March 2002.,Accuracy to 1m level.,1118,22.13,22.58,113.76,114.51,1,0,9606,-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246,1
+2,1826,4612,4326,,"Approximation at the +/- 1m level.",1129,17.09,46.05,122.38,157.65,1,0,9603,0,0,0,,,,,1
+3,1838,4613,4326,Datum shift derived through ITRF93.,Oil exploration.,1328,-1.24,0,116.72,117.99,1,0,9603,-404.78,685.68,45.47,,,,,0
+4,1897,4613,4326,Accuracy estimate not available.,For military purposes.,1360,-4.24,4.29,114.55,119.06,1,0,9603,-403,684,41,,,,,1
+5,1898,4613,4326,,Oil exploration.,1359,-4.24,0,114.55,117.99,1,0,9603,-387.06,636.53,46.29,,,,,0
+6,1899,4613,4326,,Oil exploration.,2770,-0.07,4.29,116.96,119.06,1,0,9603,-403.4,681.12,46.56,,,,,0
+7,1840,4614,4326,"Transformation defines QND95. May be approximated to 1m throughout Qatar by geocentric translation transformation with dX=-127.78098m, dY=-283.37477m, dZ=+21.24081m.",Parameter values are defined and therefore exact.,1346,24.55,26.2,50.69,51.68,1,0,9606,-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065,1
+8,1888,4615,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,1314,32.35,33.15,-17.31,-16.23,1,0,9603,-499,-249,314,,,,,1
+9,1889,4616,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,2779,29.98,30.21,-16.11,-15.79,1,1,9603,-289,-124,60,,,,,0
+10,1965,4616,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,2779,29.98,30.21,-16.11,-15.79,1,0,9603,-289,-124,60,,,,,1
+11,1842,4617,4326,"For many purposes NAD83(CSRS) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(CSRS) is equivalent to WGS 84.",1061,40.04,86.46,-141.01,-47.74,1,0,9603,0,0,0,,,,,1
+12,1946,4617,4326,"Approximation derived from tfm code 6864 ignoring time-dependent parameters and assuming ITRF96(1997.0) and WGS 84 can be considered the same within the accuracy of the transformation.",Geodesy.,1061,40.04,86.46,-141.01,-47.74,1,0,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0
+13,1864,4618,4326,Derived at 84 stations.,"For military purposes only. Accuracy 15m, 6m and 9m in X, Y and Z axes.",4016,-45,12.52,-81.41,-34.74,1,0,9603,-57,1,-41,,,,,0
+14,1865,4618,4326,"Derived at 10 stations. Note: SAD69 not adopted in Argentina: see Campo Inchauspe (CRS code 4221).",For military purposes only. Accuracy 5m in each axis.,3215,-52.43,-21.78,-73.59,-53.65,1,0,9603,-62,-1,-37,,,,,0
+15,1866,4618,4326,"Derived at 4 stations. Note: SAD69 not adopted in Bolivia: see PSAD56 (CRS code 4248).",For military purposes. Accuracy 15m in each axis.,1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,-61,2,-48,,,,,0
+16,1867,4618,4326,Derived at 22 stations.,"For military purposes only. Accuracy 3m, 5m and 5m in X, Y and Z axes.",3887,-33.78,4.43,-60.58,-34.74,1,0,9603,-60,-2,-41,,,,,0
+17,1868,4618,4326,"Derived at 9 stations. Note: SAD69 not adopted in Chile north of 43°30'S. Replaced by SAD69 to WGS 84 (17) to (19) (codes 6974, 6975 and 6976).","For military purposes only. Accuracy 15m, 8m and 11m in X, Y and Z axes.",3227,-45,-17.5,-75.22,-67,1,0,9603,-75,-1,-44,,,,,0
+18,1869,4618,4326,"Derived at 7 stations. Note: SAD69 not adopted in Colombia: see Bogota 1975 (CRS code 4218).","For military purposes only. Accuracy 6m, 6m and 5m in X, Y and Z axes.",3229,-4.23,12.52,-79.1,-66.87,1,0,9603,-44,6,-36,,,,,0
+19,1870,4618,4326,"Derived at 11 stations. Note: SAD69 not adopted in Ecuador: see PSAD56 (CRS code 4248).",For military purposes. Accuracy 3m in each axis.,3241,-5.01,1.45,-81.03,-75.21,1,0,9603,-48,3,-44,,,,,0
+20,1871,4618,4326,"Derived at 1 station. Note: SAD69 not adopted in Ecuador.",For military purposes. Accuracy 25m in each axis.,2356,-1.41,0.18,-91.72,-89.19,1,0,9603,-47,26,-42,,,,,0
+21,1872,4618,4326,"Derived at 5 stations. Note: SAD69 not adopted in Guyana.","For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",3259,1.18,8.58,-61.39,-56.47,1,0,9603,-53,3,-47,,,,,0
+22,1873,4618,4326,"Derived at 4 stations. Note: SAD69 not adopted in Paraguay.",For military purposes. Accuracy 15m in each axis.,1188,-27.59,-19.29,-62.65,-54.24,1,0,9603,-61,2,-33,,,,,0
+23,1874,4618,4326,"Derived at 6 stations. Note: SAD69 not adopted in Peru: see PSAD56 (CRS code 4248).",For military purposes. Accuracy 5m in each axis.,3292,-18.35,-0.03,-81.41,-68.67,1,0,9603,-58,0,-44,,,,,0
+24,1875,4618,4326,"Derived at 1 station. Note: SAD69 not adopted in Trinidad and Tobago.",For military purposes only. Accuracy 25m in each axis.,3143,9.99,10.9,-61.98,-60.85,1,0,9603,-45,12,-33,,,,,0
+25,1876,4618,4326,"Derived at 5 stations. Note: SAD69 not adopted in Venezuela: see PSAD56 (CRS code 4248).","For military purposes only. Accuracy 3m, 6m and 3m in X, Y and Z axes.",3327,0.64,12.25,-73.38,-59.8,1,0,9603,-45,8,-33,,,,,0
+26,1877,4618,4326,"Derived by Brazilian Institute of Geography and Statistics (IBGE) in 1989 at Chua origin point. In use by Shell throughout Brazil. For use by Petrobras and ANP, replaced by tfm code 5882 from 1994.",Medium and small scale mapping. Valid for transforming GPS observations conducted in the period 1987 to 1993 inclusive.,1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-66.87,4.37,-38.52,,,,,1
+27,5882,4618,4326,"Parameter values from SAD69 to SIRGAS 2000 (1) (tfm code 15485) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Used by ANP and Petrobras throughout Brazil from 1994, replacing use of tfm code 1877.","Accuracy generally better than 1m except in Amazon basin where it degenerates to 5m. Should be used only to transform data obtained independently of the classical geodetic network (GPS observations conducted after 1994).",1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-67.35,3.88,-38.22,,,,,0
+28,6967,4618,4326,"Also used as a transformation from SAD69 to WGS 84 - see code 6974. Note: SAD69 adopted in Chile only south of 43°30'S.",Small and medium scale cartographic mapping.,4232,-32,-17.5,-71.77,-67,1,1,9603,-59,-11,-52,,,,,0
+29,6969,4618,4326,"Also used as a transformation from SAD69 to WGS 84 - see code 6976. Note: SAD69 adopted in Chile only south of 43°30'S.",Small and medium scale cartographic mapping.,4221,-43.5,-35.99,-74.48,-70.39,1,1,9603,-72,10,-32,,,,,0
+30,6974,4618,4326,"Derived at 8 stations. Along with transformations 6975 and 6976, replaces SAD69 to WGS 84 (5) (code 1868). Also used as a transformation from SAD69 to SIRGAS-Chile - see code 7448. Note: SAD69 adopted by Chile authorities only south of 43°30'S.",For military purposes only. Accuracy 2m in each axis.,4232,-32,-17.5,-71.77,-67,1,0,9603,-59,-11,-52,,,,,0
+31,6975,4618,4326,"Derived at 6 stations. Along with transformations 6974 and 6976, replaces SAD69 to WGS 84 (5) (code 1868). Also used as a transformation from SAD69 to SIRGAS-Chile - see code 6968. Note: SAD69 adopted by Chile authorities only south of 43°30'S.",For military purposes only. Accuracy 2m in each axis.,4224,-36,-31.99,-72.87,-69.77,1,0,9603,-64,0,-32,,,,,0
+32,6976,4618,4326,"Derived at 4 stations. Along with transformations 6974 and 6975, replaces SAD69 to WGS 84 (5) (code 1868). Also used as a transformation from SAD69 to SIRGAS-Chile - see code 7449. Note: SAD69 adopted by Chile authorities only south of 43°30'S.",For military purposes only. Accuracy 4m in each axis.,4221,-43.5,-35.99,-74.48,-70.39,1,0,9603,-72,10,-32,,,,,0
+33,6977,4618,4326,"Derived at 6 stations. Also used as a transformation from SAD69 to SIRGAS-Chile - see code 6970.  Unlike IGM Chile, NGA extends use of this tfm to all Chile south of 44°S.","For military purposes only. Accuracy 3m, 3m and 4m in X, Y and Z axes.",2805,-55.96,-51.99,-74.83,-66.33,1,0,9603,-79,13,-14,,,,,0
+34,1879,4619,4326,"Parameter values taken from SWEREF to ETRS89 (1) (code 1878) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.",Geographic Information Systems.,1225,54.96,69.07,10.03,24.17,1,0,9603,0,0,0,,,,,1
+35,1880,4620,4326,Derived at one point in each of Burkina Faso and Niger.,For military purposes. Accuracy 25m in each axis.,2791,11.83,14.23,-4.64,4,1,0,9603,-106,-129,165,,,,,1
+36,1903,4621,4326,,"Accuracy +/- 10 metres.",2828,17.82,18.17,-63.21,-62.73,1,0,9603,137,248,-430,,,,,1
+37,1904,4622,4326,,"Accuracy +/- 10 metres.",2829,15.8,16.55,-61.85,-60.97,1,0,9603,-467,-16,-300,,,,,1
+38,1905,4622,4326,,"Accuracy +/- 0.1 metre.",2829,15.8,16.55,-61.85,-60.97,1,0,9606,-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984,0
+39,1906,4623,4326,,"Accuracy +/- 10 metres.",3105,3.43,5.81,-54.45,-51.61,1,0,9603,-186,230,110,,,,,1
+40,1907,4624,4326,,"Accuracy +/- 2 metres.",1097,2.11,8.88,-54.6,-49.46,1,1,9603,2,2,-2,,,,,0
+41,4840,4624,4326,"Replaces RGFG95 to WGS 84 (1) (code 1907) which was not put into official use but issued in error.","Accuracy +/- 2 metres.",1097,2.11,8.88,-54.6,-49.46,1,0,9603,0,0,0,,,,,1
+42,1909,4625,4326,,"Accuracy +/- 10 metres.",3276,14.35,14.93,-61.29,-60.76,1,0,9603,186,482,151,,,,,1
+43,1910,4625,4326,,"Accuracy +/- 0.1 metre.",3276,14.35,14.93,-61.29,-60.76,1,0,9606,126.93,547.94,130.41,-2.7867,5.1612,-0.8584,13.8227,0
+44,1911,4626,4326,Derived at 1 station.,"Accuracy +/- 30 metres.",1196,-25.92,-10.6,37.58,58.27,1,1,9603,94,-948,-1292,,,,,0
+45,15751,4626,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3337,-21.42,-20.81,55.16,55.91,1,0,9603,94,-948,-1262,,,,,1
+46,1912,4627,4326,,"Accuracy +/- 1 metre.",3902,-24.72,-18.28,51.83,58.24,1,0,9603,0,0,0,,,,,1
+47,1924,4628,4326,,"Accuracy +/- 10 metres.",2811,-17.93,-17.41,-150,-149.11,1,0,9603,162,117,154,,,,,1
+48,1913,4629,4326,,"Accuracy +/- 10 metres.",2812,-16.96,-16.17,-151.91,-150.89,1,0,9603,65,342,77,,,,,0
+49,15770,4629,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Tahaa 54 to RGPF (1) (tfm code 15758).","Accuracy +/- 1 metre.",2812,-16.96,-16.17,-151.91,-150.89,1,0,9607,72.438,345.918,79.486,-1.6045,-0.8823,-0.5565,1.3746,1
+50,1914,4630,4326,,"Accuracy +/- 10 metres.",3129,-9.57,-8.72,-140.31,-139.44,1,0,9603,84,274,65,,,,,1
+51,15775,4630,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN72 Nuku Hiva to RGPF (1) (tfm code 15763).","Accuracy +/- 1 metre.",2810,-9.01,-8.72,-140.31,-139.96,1,0,9607,165.732,216.72,180.505,-0.6434,-0.4512,-0.0791,7.4204,0
+52,15776,4630,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN72 Nuku Hiva to RGPF (2) (tfm code 15764).","Accuracy +/- 2 metres.",3127,-9,-8.81,-139.66,-139.44,1,0,9607,1363.785,1362.687,398.811,-4.5322,-6.7579,-1.0574,268.361,0
+53,15777,4630,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN72 Nuku Hiva to RGPF (2) (tfm code 15765).","Accuracy +/- 1 metre.",3128,-9.57,-9.27,-140.21,-139.95,1,0,9607,259.551,297.612,197.833,1.4866,2.1224,0.4612,27.0249,0
+54,1915,4631,4326,"Also published in US NIMA/NGA TR8350.2 which gives accuracy of +/-25m in each axis and states that derived at one station.","Accuracy +/- 10 metres.",2816,-49.78,-48.6,68.69,70.62,1,1,9603,145,-187,103,,,,,0
+55,1916,4632,4326,,"Accuracy +/- 10 metres.",3340,-13.05,-12.61,44.98,45.35,1,0,9603,-382,-59,-262,,,,,1
+56,1272,4121,4326,,For applications requiring 1m or better accuracy.,3254,34.88,41.75,19.57,28.3,1,0,9603,-199.87,74.79,246.62,,,,,1
+57,1918,4634,4326,,"Accuracy +/- 10 metres.",1174,-26.45,-14.83,156.25,174.28,1,1,9603,-13,-348,292,,,,,0
+58,1929,4634,4326,,"Accuracy better than +/- 1 metre.",2822,-22.45,-20.03,163.92,167.09,1,1,9606,97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259,0
+59,1639,4123,4326,"Parameter values from KKJ to ETRS89 (1) (code 1638). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by KKJ to WGS 84 (2) (code 10099).",For applications to an accuracy of 1 to 2 metres.,3333,59.75,70.09,19.24,31.59,1,0,9606,-90.7,-106.1,-119.2,4.09,0.218,-1.05,1.37,0
+60,10099,4123,4326,"Parameter values from KKJ to ETRS89 (2) (code 10098). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces KKJ to WGS 84 (1) (code 1639).",For applications to an accuracy of 1 to 2 metres.,3333,59.75,70.09,19.24,31.59,1,0,9607,-96.062,-82.428,-121.753,-4.801,-0.345,1.376,1.496,1
+61,1680,4124,4326,"Parameter values from RT90 to ETRS89 (1) (code 1437) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaced by RT90 to WGS 84 (2) (code 1896) from 2001.","Approximation at the +/- 1m level.",1225,54.96,69.07,10.03,24.17,1,0,9607,419.3836,99.3335,591.3451,-0.850389,-1.817277,7.862238,-0.99496,0
+62,1788,4124,4326,"Parameter values from RT90 to ETRS89 (1) (code 1787) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Supersedes RT90 to WGS 84 (1) (code 1680).","Approximation at the +/- 1m level.",1225,54.96,69.07,10.03,24.17,1,1,9607,414.1,41.3,603.1,-0.855,2.141,-7.023,0,0
+63,1896,4124,4326,"Parameter values from RT90 to SWEREF99 (1) (code 1895) assuming that SWEREF99 is equivalent to WGS 84 within the accuracy of the transformation. Replaces RT90 to WGS 84 (1) (code 1680).","Approximation at the +/- 1m level.",1225,54.96,69.07,10.03,24.17,1,0,9607,414.1,41.3,603.1,0.855,-2.141,7.023,0,1
+64,1282,4125,4326,Datum shift derived through ITRF93.,Oil exploration.,1328,-1.24,0,116.72,117.99,1,1,9603,-404.78,685.68,45.47,,,,,0
+65,8270,4638,4326,"Replaces Saint Pierre et Miquelon 1950 to WGS 84 (1) (code 1923) from March 2006.","Accuracy +/- 0.5 to 1 metre.",3299,46.69,47.19,-56.48,-56.07,1,0,9603,11.363,424.148,373.13,,,,,1
+66,1923,4638,4326,,"Accuracy +/- 10 metres.",3299,46.69,47.19,-56.48,-56.07,1,0,9603,30,430,368,,,,,0
+67,1683,4127,4326,"Parameter values taken from Tete to Moznet (1) (code 1297) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals as high as 30 metres.,3281,-26.87,-10.42,30.21,40.9,1,0,9607,-115.064,-87.39,-101.716,0.058,-4.001,2.062,9.366,0
+68,1684,4127,4326,"Parameter values taken from Tete to Moznet (2) (code 1298) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 1 metre.,2350,-26.87,-23.91,31.91,34.5,1,0,9607,-82.875,-57.097,-156.768,2.158,-1.524,0.982,-0.359,0
+69,1685,4127,4326,"Parameter values taken from Tete to Moznet (3) (code 1299) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 4 metres.,2351,-24.91,-19.74,31.29,35.65,1,0,9607,-138.527,-91.999,-114.591,0.14,-3.363,2.217,11.748,0
+70,1686,4127,4326,"Parameter values taken from Tete to Moznet (4) (code 1300) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 3 metres.,2352,-19.91,-14.01,30.21,39.18,1,0,9607,-73.472,-51.66,-112.482,-0.953,-4.6,2.368,0.586,0
+71,1687,4127,4326,"Parameter values taken from Tete to Moznet (5) (code 1301) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are 5-10 metres.,2353,-16.94,-10.42,34.36,40.9,1,0,9607,219.315,168.975,-166.145,-0.198,-5.926,2.356,-57.104,0
+72,6901,4127,4326,Derived at 4 stations.,For military purposes. Accuracy 10m in each axis.,3281,-26.87,-10.42,30.21,40.9,1,0,9603,-80,-100,-228,,,,,1
+73,1934,4640,4326,RRAF 1991 was defined to be WGS84 at a single point in Martinique during the 1988 Tango mission.,"Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,1,9603,0,0,0,,,,,0
+74,1928,4641,4326,Withdrawn by information source and replaced by improved information - see tfm code 15901.,"Accuracy better than +/- 1 metre.",2819,-21.71,-21.32,167.75,168.19,1,0,9606,-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993,0
+75,15901,4641,4326,"Parameter values taken from IGN53 Mare to RGNC91-93 (1) ( code 15884) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 2 metres.,2819,-21.71,-21.32,167.75,168.19,1,0,9603,287.58,177.78,-135.41,,,,,1
+76,15783,4641,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15901.,Accuracy 5 metres.,2819,-21.71,-21.32,167.75,168.19,1,0,9603,287,178,-136,,,,,0
+77,1302,4130,4326,,For many purposes Moznet can be considered to be coincident with WGS 84. Accuracy better than 1 metre.,1167,-27.71,-10.09,30.21,43.03,1,0,9607,0,0,0,0,0,0,0,1
+78,1542,4131,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,2359,14,18,105.61,109.32,1,0,9603,198,881,317,,,,,1
+79,1543,4131,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2360,8.58,8.83,106.49,106.79,1,0,9603,182,915,344,,,,,0
+80,1513,4132,4326,Derived in 1998 in Kangan district by Geoid for Total. Used for South Pars phases 2 and 3.,Oil exploration.,2362,27.3,28.2,51.8,53.01,1,0,9603,-241.54,-163.64,396.06,,,,,1
+81,1854,4132,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Oil Exploration,2782,26.21,26.87,52.49,53.43,1,0,9603,-239.1,-170.02,397.5,,,,,0
+82,1855,4132,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Oil Exploration,2781,29.16,29.39,50.22,50.42,1,0,9603,-244.72,-162.773,400.75,,,,,0
+83,1333,4133,4326,,"?",3246,57.52,59.75,21.74,28.2,1,0,9607,0.055,-0.541,-0.185,-0.0183,0.0003,0.007,-0.014,1
+84,1439,4134,4326,"Replaced PSD93 to WGS 84 (2) (code 8581) in 1997.","Oil exploration. Residuals 0.5m at 67% probability level.",3288,16.59,26.58,51.99,59.91,1,0,9606,-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006,1
+85,1617,4134,4326,Accuracy better than 0.5m in block 4.,Oil exploration.,2404,19.58,21.17,56.5,59.02,1,0,9606,-191.808,-250.512,167.861,-0.792,-1.653,8.558,20.703,0
+86,15824,4135,4326,Derived at 15 satellite stations.,"Military mapping. Accuracy +/- 25m in X axis, +/- 20m in Y and Z axes.",1334,18.87,22.29,-160.3,-154.74,1,0,9603,61,-285,-181,,,,,1
+87,15825,4135,4326,Derived at 2 satellite stations.,"Military mapping. Accuracy +/- 25m in each axis.",1546,18.87,20.33,-156.1,-154.74,1,0,9603,89,-279,-183,,,,,0
+88,15826,4135,4326,Derived at 3 satellite stations.,"Military mapping. Accuracy +/- 20m in each axis.",1549,21.81,22.29,-159.85,-159.23,1,0,9603,45,-290,-172,,,,,0
+89,15827,4135,4326,Derived at 2 satellite stations.,"Military mapping. Accuracy +/- 25m in each axis.",1547,20.45,21.26,-157.36,-155.93,1,0,9603,65,-290,-190,,,,,0
+90,15828,4135,4326,Derived at 8 satellite stations.,"Military mapping only. Accuracy +/- 10m in X axis, +/- 6m in Y and Z axes.",1548,21.2,21.75,-158.33,-157.61,1,0,9603,58,-283,-182,,,,,0
+91,6208,6207,4326,Derived at 11 points.,"Topographic mapping. Accuracy 0.26m (1-sigma).",1171,26.34,30.43,80.06,88.21,1,0,9603,293.17,726.18,245.36,,,,,1
+92,1893,4139,4326,Derived at 11 stations.,For military purposes only. Accuracy 3m in each axis.,1335,17.62,18.78,-67.97,-64.25,1,0,9603,11,72,-101,,,,,1
+93,1473,4140,4326,"For many purposes NAD83(CSRS98) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.",1336,44.61,62.56,-120,-57.1,1,1,9603,0,0,0,,,,,0
+94,1073,4141,4326,For more accurate transformation contact Survey of Israel.,"Accuracy: 2m",2603,29.45,33.28,34.17,35.69,1,0,9603,-48,55,52,,,,,1
+95,1469,4142,4326,,"?",2282,5.15,5.54,-4.22,-3.85,1,0,9603,-125,53,467,,,,,1
+96,1470,4143,4326,"Derived in Abidjan for use in the immediate area, but used by E&P industry more widely onshore and offshore. A similar transformation (tfm code 6872) was used by Western Geophysical for offshore surveys in the 1990s.",Accuracy is submetre in the area around Abidjan but unknown farther afield. There is some evidence of unknown reliability that suggests accuracy of better than 2m throughout offshore.,1075,1.02,10.74,-8.61,-2.48,1,0,9603,-124.76,53,466.79,,,,,1
+97,6872,4143,4326,"Derived and used by Western Geophysical for offshore surveys in the 1990s, but exact provenance uncertain. Used by OMV.",Accuracy uncertain but there is some evidence of unknown reliability that suggests accuracy of better than 2m throughout offshore.,2296,1.02,5.19,-7.55,-3.11,1,0,9603,-123.1,53.2,465.4,,,,,0
+98,1155,4144,4326,Derived at 6 stations.,"For military purposes. Accuracy 10m, 8m and 12m in X, Y and Z axes.",3217,20.52,26.64,88.01,92.67,1,0,9603,282,726,254,,,,,0
+99,1533,4144,4326,,Oil exploration.,2361,9.48,17.87,93.94,99.66,1,0,9603,214,804,268,,,,,1
+100,1247,4145,4326,"Care! DMA ellipsoid is inconsistent with EPSG ellipsoid - transformation parameter values may not be appropriate. No accuracy estimate available.",For military purposes.,3289,23.64,37.07,60.86,77.83,1,0,9603,283,682,231,,,,,1
+101,15701,4145,4326,Derived at Geodetic Survey office in Karachi in 1997.,Oil exploration.,2985,21.05,25.39,64,68.24,1,0,9603,275.57,676.78,229.6,,,,,0
+102,15702,4145,4326,"Derived at station S0001, an approximate offset to Survey of India primary station Kat Baman, in 1992 from 180 single point Transit passes observed in 1991 by Fugro-Geodetic for UTP.",Oil exploration.,2984,24,25.64,67.74,69.87,1,0,9603,278.9,684.39,226.05,,,,,0
+103,15703,4145,4326,Derived at Chitrawala triangulation station by Fugro-Geodetic for UTP.,Oil exploration.,2982,24.69,25.76,66.83,68,1,0,9603,271.905,669.593,231.495,,,,,0
+104,15704,4145,4326,Derived by Western Geophysical for UTP 1996 East Sind 2D survey.,Oil exploration.,2983,24.16,28.61,68.27,71.14,1,0,9606,230.25,632.76,161.03,-1.114,1.115,1.212,12.584,0
+105,15494,4145,4326,Derived by Fugro-Geodetic in 2004 at 6 closely-spaced stations. Used by OMV in all blocks in Pakistan where operator.,Oil exploration.,3589,25.88,27.67,68.24,69.3,1,0,9603,274.164,677.282,226.704,,,,,0
+106,1156,4146,4326,"Care! DMA ellipsoid is inconsistent with EPSG ellipsoid - transformation parameter values may not be appropriate. Also source CRS may not apply to Nepal. Derived at 7 stations.","For military purposes. Accuracy 12m, 10m and 15m in X, Y and Z axes.",2411,8.02,35.51,68.13,97.42,1,0,9603,295,736,257,,,,,1
+107,1544,4147,4326,Derived in Vung Tau area.,Oil exploration.,1494,9.02,11.03,105.49,107.59,1,0,9603,-17.51,-108.32,-62.39,,,,,1
+108,1505,4148,4326,,For many purposes Hartebeesthoek94 datum can be considered to be coincident with WGS 84.,1215,-50.32,-22.13,13.33,42.85,1,0,9603,0,0,0,,,,,1
+109,1508,4149,4326,"Implemented in Bundesamt für Landestopographie programme GRANIT.","?",1286,45.82,47.81,5.96,10.49,1,1,9607,660.077,13.551,369.344,0.80482,0.57769,0.95224,5.66,0
+110,1510,4149,4326,"These parameters are strictly between CH1903+ and CHTRF95 but are used from CH1903 as an approximation which is within the accuracy of the distortions in the CH1903 network.",Accuracy 1.5 metres.,1286,45.82,47.81,5.96,10.49,1,1,9603,674.374,15.056,405.346,,,,,1
+111,1753,4149,4326,"Implemented in Bundesamt für Landestopografie programme GRANIT. Used from 1987 to 1997. Not recommended for current usage - replaced by CH1903 to WGS 84 (2) (code 1766).",Used in programme GRANIT between 1987 and 1997.,1286,45.82,47.81,5.96,10.49,1,0,9607,660.077,13.551,369.344,0.80482,0.57769,0.95224,5.66,0
+112,1766,4149,4326,"Parameters values from CH1903 to ETRS89 (1) (tfm code 1646) assuming ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces CH1903 to WGS 84 (1) (code 1753). Replaced by CH1903 to WGS 84 (3) (code 7788).","Parameter values originally from CH1903+ to ETRS89 (tfm code 1647) and are used in tfm code 1646 as an approximation from CH1903 to ETRS89 with a lesser accuracy of 1.5m which equates to the magnitude of distortions in the CH1903 network.",1286,45.82,47.81,5.96,10.49,1,0,9603,674.374,15.056,405.346,,,,,0
+113,1676,4150,4326,"Parameter values are from CH1903+ to CHTRF95 (1) (code 1509) assuming that CHTRF95 is equivalent to WGS 84. That transformation is also given as CH1903+ to ETRS89 (1) (code 1647). CHTRF95 is a realisation of ETRS89.","Approximation at the +/- 1m level.",1286,45.82,47.81,5.96,10.49,1,0,9603,674.374,15.056,405.346,,,,,1
+114,1511,4151,4326,,For many purposes CHTRF95 can be considered to be coincident with WGS 84.,1286,45.82,47.81,5.96,10.49,1,0,9603,0,0,0,,,,,1
+115,1580,4152,4326,"For many purposes NAD83(HARN) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(HARN) is equivalent to WGS 84.",1337,-14.59,49.38,144.58,-64.51,1,0,9603,0,0,0,,,,,1
+116,1900,4152,4326,"Approximation derived ignoring time-dependent parameters and assuming ITRF94(1996.0) and WGS 84, plus NAD83(CORS94) and NAD83(HARN), can be considered the same within the accuracy of the transformation. Replaced by NAD83(HARN) to WGS 84 (3) (code 1901).",Historical record only - superseded - see remarks.,1323,24.41,49.38,-124.79,-66.91,1,0,9607,-0.9738,1.9453,0.5486,-0.0275508,-0.010049,-0.011359,0,0
+117,1901,4152,4326,"Approximation derived from tfm code 6864 ignoring time-dependent parameters and assuming ITRF96(1997.0) and WGS 84, plus NAD83(CORS96) and NAD83(HARN), can be considered the same within the accuracy of the tfm. In USA only replaces tfm code 1900.","Geodesy. Accuracy with respect to CORS at stations adjusted to HARN network is better than 0.05-0.07m. For locations outside a HARN network (i.e. NAD83), accuracy may be only 1m but will usually be better than 0.5m.",1323,24.41,49.38,-124.79,-66.91,1,0,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0
+118,15930,4152,4326,"Accuracy 0.1 to 0.2m in California, 0.05-0.11 in Oregon, elsewhere better than 0.05m.",For applications to an accuracy of 0.2 metre.,1323,24.41,49.38,-124.79,-66.91,1,1,9603,0,0,0,,,,,0
+119,1512,4153,4326,"Derived in 1998 at Assaluyeh (Taheri refinery) by Geoid for Total. Used for South Pars phases 2 and 3.",Oil industry engineering survey. Used only for terminal site.,1338,27.39,27.61,52.5,52.71,1,0,9603,-133.63,-157.5,-158.62,,,,,1
+120,1141,4154,4326,"Given by DMA as from ED50. OGP interpret that as ED50(ED77) in Iran. Derived at 27 stations.","For military purposes. Accuracy 9m, 12m and 11m in X, Y and Z axes.",1123,23.34,39.78,44.03,63.34,1,0,9603,-117,-132,-164,,,,,1
+121,1514,4154,4326,"Used for South Pars phases 6, 7 and 8.","Transformation for whole country: accuracy about 1m.",1123,23.34,39.78,44.03,63.34,1,0,9606,-110.33,-97.73,-119.85,0.3423,1.1634,0.2715,0.063,0
+122,1856,4154,4326,Derived in Kangan district by Geoid for Total in 1998. Used for South Pars phases 2 and 3.,Petroleum Exploration and Production.,2783,26.58,26.71,52.07,52.28,1,0,9603,-122.89,-159.08,-168.74,,,,,0
+123,1857,4154,4326,Derived in 1999 on Lavan island by Geoid for Elf.,Petroleum Exploration and Production.,2782,26.21,26.87,52.49,53.43,1,0,9603,-84.78,-107.55,-137.25,,,,,0
+124,1858,4154,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Petroleum Exploration and Production.,2781,29.16,29.39,50.22,50.42,1,0,9603,-123.92,-155.515,-157.721,,,,,0
+125,15745,4154,4326,Derived in Tombak district in March 2005. Used for South Pars phase 11.,Petroleum Exploration and Production.,3140,26.46,26.64,52.22,52.41,1,0,9603,-123.02,-158.95,-168.47,,,,,0
+126,1518,4155,4326,,Accuracy 25m in each axis.,3257,7.19,12.68,-15.13,-7.65,1,0,9603,-83,37,124,,,,,1
+127,1623,4156,4326,"Parameter values from S-JTSK to ETRS89 (1) (code 1622). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by S-JTSK to WGS 84 (5) (code 5239).",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9606,570.8,85.7,462.8,4.998,1.587,5.261,3.56,0
+128,1625,4156,4326,"Parameter values from S-JTSK to ETRS89 (2) (code 1624). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,1,9606,559,68.7,451.5,7.92,4.073,4.251,5.71,0
+129,4828,4156,4326,"Parameter values from S-JTSK to ETRS89 (4) (code 4827). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,1,9606,485,169.5,483.5,7.786,4.398,4.103,0,0
+130,4836,4156,4326,"Parameter values from S-JTSK to ETRS89 (4) (code 4827). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,0,9606,485,169.5,483.8,7.786,4.398,4.103,0,0
+131,5239,4156,4326,"Parameter values from S-JTSK/05 to WGS 84 (1) (code 5227). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces tfm code 1622.",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378,0
+132,15965,4156,4326,Derived at 6 stations.,"For military purposes. Accuracy 4m, 2m and 3m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,0,9603,589,76,480,,,,,1
+133,1283,4669,4326,,LKS94 is a realization of ETRS89 and coincident to WGS 84 within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1145,53.89,56.45,19.02,26.82,1,0,9603,0,0,0,,,,,1
+134,1099,4670,4326,"Parameter values taken from IGM95 to ETRS89 (1) (code 1098) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the transformation.",Approximation at the 1m level.,3343,34.76,47.1,5.93,18.99,1,0,9603,0,0,0,,,,,1
+135,1859,4159,4326,"Used by Repsol in Murzuq field, and PetroCanada and previous licence holders in NC177 and 72 (En Naga field). Reliability of connection to ELD79 questionned.",Oil Exploration,2785,27.32,27.67,18.37,18.72,1,0,9603,-69.06,-90.71,-142.56,,,,,0
+136,1860,4159,4326,Derived December 2001 by NAGECO. Connected to ITRF via Remsa 2000 data. Used by TotalFinaElf.,Oil Exploration. 3-dimensional SD at 11 points is 0.5m.,2785,27.32,27.67,18.37,18.72,1,0,9603,-113.997,-97.076,-152.312,,,,,0
+137,1861,4159,4326,Derived by GEOID in 1994 from Transit satellite data. Used by TotalFinaElf.,Oil Exploration,2786,29.61,30.07,17.13,17.51,1,0,9603,-114.5,-96.1,-151.9,,,,,0
+138,1862,4159,4326,"Derived by Geoid in 2000 from ITRF connection by NAGECO for TotalFinaElf. For historic compatibility TFE use the 1994 tfm ELD79 to WGS 84 (3) (code 1861) rather than this transformation.",Oil Exploration,2786,29.61,30.07,17.13,17.51,1,0,9606,-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175,0
+139,1863,4159,4326,"Derived for the Great Man-made River Authority (GMRA).",Engineering survey and oil exploration,2786,29.61,30.07,17.13,17.51,1,0,9607,-389.691,64.502,210.209,-0.086,-14.314,6.39,0.9264,0
+140,15923,4159,4326,"Derived by SDL for Total in Cyrenaica blocks 2 & 4.",Oil and gas exploration.,3477,32,32.8,22.49,23,1,0,9603,-117.7,-100.3,-152.4,,,,,0
+141,15707,4159,4326,"Used by Petrocanada and previous licence holders in Amal field, concession 12.",Oil exploration and production,2987,29.1,29.8,20.8,21.4,1,0,9603,-118.996,-111.177,-198.687,,,,,0
+142,15909,4159,4326,Derived at 29 stations throughout Libya in May 2006.,For applications to an accuracy of 5 metres.,3271,19.49,33.23,9.31,25.21,1,0,9603,-115.8543,-99.0583,-152.4616,,,,,1
+143,15778,4159,4326,"Derived by Total at stations SDL 130-03, 04 and 05 in May 2005.",Oil exploration and production.,3142,27.5,28.07,21.25,21.59,1,0,9603,-114.7,-98.5,-150.7,,,,,0
+144,1080,4672,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,2889,-44.64,-43.3,-177.25,-175.54,1,0,9603,175,-38,113,,,,,1
+145,1081,4673,4326,Derived at 4 stations using concatenation through WGS72. Parameter vales are also used to transform CI1979 to NZGD2000 - see tfm code 1082.,For applications requiring 2m accuracy.,2889,-44.64,-43.3,-177.25,-175.54,1,0,9607,174.05,-25.49,112.57,0,0,-0.554,0.2263,1
+146,15894,4674,4326,,Accuracy 1m.,3418,-59.87,32.72,-122.19,-25.28,1,0,9603,0,0,0,,,,,1
+147,1070,4675,4326,Derived at 5 stations.,For military purposes only. Accuracy 3m in each axis.,3255,13.18,13.7,144.58,145.01,1,0,9603,-100,-248,259,,,,,1
+148,1682,4164,4326,"Parameter values taken from South Yemen to Yemen NGN96 (1) (code 1539) assuming that NGN96 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 5m level.",1340,12.54,19,43.37,53.14,1,0,9603,-76,-138,67,,,,,1
+149,1547,4165,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,3258,10.87,12.69,-16.77,-13.64,1,0,9603,-173,253,27,,,,,1
+150,1065,4678,4326,Derived at 25 stations.,Accuracy 5m.,1138,13.92,22.5,100.09,107.7,1,0,9603,44.585,-131.212,-39.544,,,,,1
+151,1565,4167,4326,,Assumes NZGD2000 is coincident to WGS 84 to the 1m accuracy level.,1175,-55.95,-25.88,160.6,-171.2,1,0,9603,0,0,0,,,,,1
+152,1569,4168,4326,Derived at 3 common points.,Military survey,1104,1.4,11.16,-3.79,2.1,1,0,9603,-199,32,322,,,,,1
+153,6896,4168,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 4m and 3m in X, Y and Z axes.",3252,4.67,11.16,-3.25,1.23,1,0,9603,-170,33,326,,,,,0
+154,15495,4168,4326,Derived via WGS 72BE. Found in use within oil industry erroneously concatenated via WGS 72. See tfm code 8571.,Oil industry.,1505,1.4,6.06,-3.79,2.1,1,0,9606,-171.16,17.29,325.21,0,0,0.814,-0.38,0
+155,1577,4169,4326,Transformation based on observations at 2 stations in 1993.,For military purposes. One sigma uncertainty is 25m in each axis.,3109,-14.43,-14.11,-170.88,-169.38,1,0,9603,-115,118,426,,,,,1
+156,1581,4170,4326,,For military purposes. Accuracy 1m in each axis.,3448,-59.87,16.75,-113.21,-26,1,0,9603,0,0,0,,,,,1
+157,1671,4171,4326,"Parameter values from RGF93 to ETRS89 (1) (code 1591) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level.",1096,41.15,51.56,-9.86,10.38,1,0,9603,0,0,0,,,,,1
+158,1598,4172,4326,,"?",1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,0,0,0,,,,,0
+159,1678,4173,4326,Assumes that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. IRENET95 is a regional realisation of ETRS89.,"Approximation at the +/- 1m level.",1305,51.39,55.43,-10.56,-5.34,1,0,9603,0,0,0,,,,,1
+160,15738,4686,4326,,MAGNA-SIRGAS is a national realization of SIRGAS and coincident with WGS 84 to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1070,-4.23,15.51,-84.77,-66.87,1,0,9603,0,0,0,,,,,1
+161,1614,4175,4326,"Determined at 8 stations. Info. source has the source CRS as Sierra Leone 1960. Sierra Leone 1968 is a readjustment of the 1960 network: coordinates changed by less than 3 metres.","Accuracy +/- 15m in each axis.",3306,6.88,10,-13.35,-10.26,1,0,9603,-88,4,101,,,,,1
+162,1890,4176,4326,For many purposes Australian Antarctic can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that Australian Antarctic is equivalent to WGS 84.",1278,-90,-60,45,160,1,0,9603,0,0,0,,,,,1
+163,15773,4689,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN63 Hiva Oa to RGPF (1) (tfm code 15761).","Accuracy +/- 1 metre.",3131,-9.89,-9.64,-139.23,-138.75,1,0,9607,410.721,55.049,80.746,-2.5779,-2.3514,-0.6664,17.3311,1
+164,15774,4689,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN63 Hiva Oa to RGPF (2) (tfm code 15762).","Accuracy +/- 2 metres.",3132,-10.08,-9.86,-139.19,-138.98,1,0,9607,374.716,-58.407,-0.957,-16.2111,-11.4626,-5.5357,-0.5409,0
+165,1675,4178,4326,"Parameter values from Pulkovo 1942(83) to ETRS89 (1) (code 1674) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.",Residuals under 2 m.,1343,50.2,54.74,9.92,15.04,1,0,9607,24,-123,-94,-0.02,0.25,0.13,1.1,0
+166,15998,4178,4326,Derived at 6 stations.,"For military purposes only. Accuracy 3m, 3m and 2m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,0,9603,26,-121,-78,,,,,1
+167,15996,4178,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1119,45.74,48.58,16.11,22.9,1,0,9603,28,-121,-77,,,,,0
+168,1645,4179,4326,"Parameter values from Pulkovo 1942(58) to ETRS89 (1) (code 1644). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3293,49,54.89,14.14,24.15,1,0,9606,33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84,1
+169,15999,4179,4326,Derived at 7 stations.,For military purposes. Accuracy 3m in each axis.,3212,39.64,42.67,19.22,21.06,1,0,9603,24,-130,-92,,,,,0
+170,15496,4179,4326,,Oil exploration,1197,43.44,48.27,20.26,31.41,1,0,9603,44.107,-116.147,-54.648,,,,,0
+171,15497,4179,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,0,9603,28,-121,-77,,,,,0
+172,15995,4179,4326,"Parameter values taken from Pulkovo 1942(58) to ETRS89 (4) (code 15994) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy of 1.5 to 3 metres horizontal, 3 to 5m vertical.",1197,43.44,48.27,20.26,31.41,1,0,9607,2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69,0
+173,15997,4179,4326,Derived at 11 stations.,"For military purposes only. Accuracy 4m, 2m and 4m in X, Y and Z axes.",3293,49,54.89,14.14,24.15,1,0,9603,23,-124,-82,,,,,0
+174,1649,4180,4326,"Parameter values taken from EST97 to ETRS89 (1) (code 1648). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1090,57.52,60,20.37,28.2,1,0,9603,0,0,0,,,,,1
+175,1643,4181,4326,"Parameter values from Luxembourg 1930 to ETRS89 (1) (code 1642). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1146,49.44,50.19,5.73,6.53,1,0,9606,-193,13.7,-39.3,-0.41,-2.933,2.688,0.43,0
+176,5486,4181,4326,"Parameter values from Luxembourg 1930 to ETRS89 (3) (code 5485) assuming ETRS89 and WGS 84 are coincident within the one metre level. Replaces tfm code 1643. For an equivalent transformation using the Molodensky-Badekas method see code 5484.",For applications to an accuracy of 1 metre.,1146,49.44,50.19,5.73,6.53,1,0,9607,-189.6806,18.3463,-42.7695,0.33746,3.09264,-2.53861,0.4598,1
+177,1210,4694,4326,,Transformation with 1-metre accuracy.,1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1
+178,1886,4183,4326,Derived at 5 stations.,For military purposes only. Accuracy 3m in each axis.,1301,38.32,39.14,-28.9,-26.97,1,0,9603,-104,167,-38,,,,,1
+179,1885,4184,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,1345,36.87,37.96,-25.92,-24.62,1,0,9603,-203,141,53,,,,,1
+180,15794,4708,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,1069,-12.27,-11.76,96.76,96.99,1,0,9603,-491,-22,435,,,,,1
+181,15850,4698,4326,"Also published in US NIMA/NGA TR8350.2 which gives accuracy of +/-25m in each axis and states that derived at one station.","Accuracy +/- 10 metres.",2816,-49.78,-48.6,68.69,70.62,1,0,9603,145,-187,103,,,,,1
+182,15784,4699,4326,Derived at 17 stations in 1994 by University of East London. Residuals less than 2m.,Accuracy 2m.,3209,-20.57,-19.94,57.25,57.85,1,0,9603,-770.1,158.4,-498.2,,,,,1
+183,1955,4188,4326,"Parameter values from TM75 to ETRS89 (2) (code 1953). Assumes each pair of (i) OSNI 1952 and TM75, and (ii) ETRS89 and WGS 84, can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,2530,53.96,55.36,-8.18,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1
+184,1768,4189,4326,,"Approximation at the +/- 1m level.",1251,0.64,16.75,-73.38,-58.95,1,0,9603,0,0,0,,,,,1
+185,1773,4190,4326,,"Approximation at the +/- 1m level.",1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1
+186,15780,4190,4326,,"Approximation at the +/- 1m level.",1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,0,0,0,,,,,0
+187,6964,4191,4326,"Parameter values from Albanian 1987 to ETRS89 (1) (code 6963). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Use only for horizontal coordinates; geoid heights must be calculated with ALBGEO3 software.",3212,39.64,42.67,19.22,21.06,1,1,9607,-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703,0
+188,7834,4191,4326,"Parameter values from Albanian 1987 to ETRS89 (1) (code 7833). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Use only for horizontal coordinates; geoid heights must be calculated with ALBGEO3 software.",3212,39.64,42.67,19.22,21.06,1,0,9607,-44.183,-0.58,-38.489,-2.3867,-2.7072,3.5196,-8.2703,1
+189,15873,4192,4326,Derived at Manoca tower assuming the pyramid on the tower and the centre of the tower reservoir are co-located. This assumption carries a few metres uncertainty.,Oil exploration.,2555,2.16,4.99,8.45,10.4,1,0,9603,-206.1,-174.7,-87.7,,,,,1
+190,1796,4193,4326,"Derived at two points, checked at a third by Stolt Comex Seaway and Geoid for Elf.",Oil industry,2555,2.16,4.99,8.45,10.4,1,0,9603,-70.9,-151.8,-41.4,,,,,1
+191,1797,4194,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m, 25m and 32m in X, Y and Z axes.",3362,59.74,79,-73.29,-42.52,1,0,9603,164,138,-189,,,,,1
+192,1798,4194,4326,,Topographic mapping.,3362,59.74,79,-73.29,-42.52,1,0,9606,163.511,127.533,-159.789,0,0,0.814,-0.6,0
+193,1799,4195,4326,,Topographic mapping.,2570,68.66,74.58,-29.69,-19.89,1,0,9606,105,326,-102.5,0,0,0.814,-0.6,1
+194,1800,4196,4326,,Topographic mapping.,2571,65.52,65.91,-38.86,-36.81,1,0,9606,-45,417,-3.5,0,0,0.814,-0.6,1
+195,15796,4709,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,3200,24.67,24.89,141.2,141.42,1,0,9603,145,75,-272,,,,,1
+196,15798,4710,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-320,550,-494,,,,,1
+197,7894,4710,4326,"Parameter values from Astro DOS 71 to SHGD2015 (1) (tfm code 7893). Assumes SHGD2015 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications requiring an accuracy of better than 1 metre.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-323.65,551.39,-491.22,,,,,0
+198,15799,4711,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,1872,24.22,24.35,153.91,154.05,1,0,9603,124,-234,-25,,,,,1
+199,1281,4200,4326,"Derived through concatenation of Pulkovo 1995 to PZ-90 (1) (tfm code 1257) and PZ-90 to WGS 84 (2) (tfm code 1244). Mandated for use in Russia by GOST R 51794-2001, but this has been superseded by GOST R 51794-2008. Replaced by tfm code 5043.",Accuracy 1 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,24.82,-131.21,-82.66,0,0,-0.16,-0.12,0
+200,5043,4200,4326,"Derived through concatenation of Pulkovo 1995 to PZ-90.02 to WGS 84. Replaces Pulkovo 1995 to WGS 84 (1), tfm code 1281.",Accuracy 1 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,24.47,-130.89,-81.56,0,0,-0.13,-0.22,1
+201,1100,4201,4326,Derived at 22 stations.,For military purposes only. Accuracy 5m in each axis.,1271,3.4,22.24,21.82,47.99,1,0,9603,-166,-15,204,,,,,1
+202,1101,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Burkino Faso.",For military purposes. Accuracy 25m in each axis.,1057,9.39,15.09,-5.53,2.4,1,0,9603,-118,-14,218,,,,,0
+203,1102,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Cameroon.",For military purposes. Accuracy 25m in each axis.,3226,1.65,13.09,8.45,16.21,1,0,9603,-134,-2,210,,,,,0
+204,1103,4201,4326,Derived at 8 stations.,For military purposes. Accuracy 3m in each axis.,1091,3.4,14.89,32.99,47.99,1,0,9603,-165,-11,206,,,,,0
+205,1104,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Mali.",For military purposes. Accuracy 25m in each axis.,1153,10.14,25.01,-12.25,4.26,1,0,9603,-123,-20,220,,,,,0
+206,1105,4201,4326,"Derived at 2 stations connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: The Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Senegal.",For military purposes. Accuracy 25m in each axis.,3304,12.29,16.7,-17.59,-11.36,1,0,9603,-128,-18,224,,,,,0
+207,1106,4201,4326,Derived at 14 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",3311,3.49,22.24,21.82,38.66,1,0,9603,-161,-14,205,,,,,0
+208,1108,4202,4326,"Derived at 105 stations. Replaced by AGD66 to WGS 84 (20) (code 6905).",For military purposes only. Accuracy 3m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-133,-48,148,,,,,0
+209,1665,4202,4326,"Parameter values from AGD66 to GDA94 (2) (code 1458). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in A.C.T. 1m accuracy.,2283,-35.93,-35.12,148.76,149.4,1,0,9607,-129.193,-41.212,130.73,-0.246,-0.374,-0.329,-2.955,0
+210,1666,4202,4326,"Parameter values from AGD66 to GDA94 (4) (code 1460). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in NSW and Victoria. 1m accuracy.,2286,-39.2,-28.15,140.96,153.69,1,0,9607,-119.353,-48.301,139.484,-0.415,-0.26,-0.437,-0.613,0
+211,1667,4202,4326,"Parameter values from AGD66 to GDA94 (8) (code 1594). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in Tasmania. 1m accuracy.,1282,-43.7,-39.52,143.77,148.55,1,0,9607,-120.271,-64.543,161.632,-0.217,0.067,0.129,2.499,0
+212,1668,4202,4326,"Parameter values from AGD66 to GDA94 (9) (code 1595). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in Northern Territory. 1m accuracy.,2284,-26.01,-10.86,128.99,138,1,0,9607,-124.133,-42.003,137.4,0.008,-0.557,-0.178,-1.854,0
+213,15980,4202,4326,"Parameter values from AGD66 to GDA94 (12) (code 15979). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation. Use only offshore: onshore tfms 1665-68 for ACT, NSW/Vic, Tas and NT respectively are more accurate.",3m accuracy.,3559,-47.2,-8.88,109.23,163.2,1,0,9607,-117.808,-51.536,137.784,-0.303,-0.446,-0.234,-0.29,1
+214,5841,4202,4326,Derived at 25 stations in 2007.,"Accuracy 2m in 2007. Due to significant tectonic activity in PNG, AGD66 and WGS 84 are separating by approximately 7cm per year.",4013,-8.28,-5.59,142.24,144.75,1,0,9603,-124,-60,154,,,,,0
+215,6905,4202,4326,"Derived at 161 stations. Replaces AGD66 to WGS 84 (1) (code 1108).",For military purposes only. Accuracy 5m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-128,-52,153,,,,,0
+216,6943,4202,4326,"Parameter values taken from AGD66 to PNG94 (3) (code 6938). Approximation at the +/- 5m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4214,-10.76,-2.53,140.85,150.96,1,0,9603,-129,-58,152,,,,,0
+217,6944,4202,4326,"Parameter values taken from AGD66 to PNG94 (5) (code 6940). Approximation at the +/- 4m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4013,-8.28,-5.59,142.24,144.75,1,0,9603,-131.3,-55.3,151.8,,,,,0
+218,6945,4202,4326,"Parameter values taken from AGD66 to PNG94 (7) (code 6942). Approximation at the +/- 4m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4216,-6.6,-5.05,140.89,141.54,1,0,9603,-137.4,-58.9,150.4,,,,,0
+219,15788,4202,4326,"Parameter values from AGD66 to GDA94 (1) (code 1278). Derived at 162 stations. Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",5m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-127.8,-52.3,152.9,,,,,0
+220,1109,4203,4326,"Derived at 90 stations. Note: AGD84 officially adopted only in Queensland, South Australia and Western Australia.",For military purposes only. Accuracy 2m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-134,-48,149,,,,,1
+221,1236,4203,4326,"""Higgins parameters"". Replaced by AGD84 to GDA94 (2) (code 1280) and AGD84 to WGS 84 (7) (code 1669). Note: AGD84 officially adopted only in Queensland, South Australia and Western Australia.",Preliminary estimate.,2575,-43.7,-9.86,112.85,153.69,1,0,9607,-116,-50.47,141.69,-0.23,-0.39,-0.344,0.0983,0
+222,1669,4203,4326,"Parameter values from AGD84 to GDA94 (2) (code 1280). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces AGD84 to WGS 84 (2) (code 1236). Note: AGD84 officially adopted only in Qld, SA and WA.",1m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9607,-117.763,-51.51,139.061,-0.292,-0.443,-0.277,-0.191,0
+223,15789,4203,4326,"Parameter values from AGD84 to GDA94 (1) (code 1279). Derived at 327 stations. Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the tfm. AGD84 officially adopted only in Queensland, South Australia and Western Australia.",5m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-128.5,-53,153.4,,,,,0
+224,1055,4204,4326,Derived at station K1.,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-145.7,-249.1,1.5,,,,,0
+225,1056,4204,4326,"Derivation is more precise, but no evidence that accuracy is better than Ain el Abd to WGS 84 (3). OGP recommends using Ain el Abd to WGS 84 (3).",1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9607,-85.645,-273.077,-79.708,-2.289,1.421,-2.532,3.194,0
+226,1057,4204,4326,.,1 metre accuracy.,2956,29.1,30.09,46.54,48.42,1,0,9607,-202.234,-168.351,-63.51,-3.545,-0.659,1.945,2.1,0
+227,1058,4204,4326,,1 metre accuracy.,2957,28.53,29.45,46.54,48.48,1,0,9607,-18.944,-379.364,-24.063,-0.04,0.764,-6.431,3.657,0
+228,1110,4204,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,3943,25.53,26.34,50.39,50.85,1,0,9603,-150,-250,-1,,,,,0
+229,1111,4204,4326,Derived at 9 stations.,For military purposes. Accuracy 10m in each axis.,3303,15.61,32.16,34.51,55.67,1,0,9603,-143,-236,7,,,,,1
+230,1107,4205,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3308,-1.71,12.03,40.99,51.47,1,0,9603,-43,-163,45,,,,,1
+231,15846,4706,4326,"Sometime referred to as ""Egypt 1907 to WGS 84"". However, application to WGS 84 coordinates of the reverse of this tfm results in Gulf of Suez S-650 TL, not Egypt 1907, position. Gulf of Suez S-650 TL and Egypt 1907 CRSs differ by some 20 metres.",Used for oil exploration by GUPCO.,2341,27.19,30.01,32.34,34.27,1,0,9603,-146.21,112.63,4.05,,,,,1
+232,1656,4207,4326,"Parameter values from Lisbon to ETRS89 (1) (code 1655). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by Lisbon to WGS 84 (4) (code 1988).",For applications to an accuracy of 3 metres.,1294,36.95,42.16,-9.56,-6.19,1,0,9606,-280.9,-89.8,130.2,-1.721,0.355,-0.371,-5.92,0
+233,1944,4207,4326,"Parameter values from Lisbon to ETRS89 (2) (code 1790). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 2 metres.,1294,36.95,42.16,-9.56,-6.19,1,1,9606,-282.1,-72.2,120,-1.592,0.145,-0.89,-4.46,0
+234,1984,4207,4326,,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-304.046,-60.576,103.64,,,,,1
+235,1988,4207,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-288.885,-91.744,126.244,1.691,-0.41,0.211,-4.598,0
+236,6898,4207,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-306,-62,105,,,,,0
+237,15877,4720,4326,"Suitable for GIS mapping purposes but not rigorous surveying. Very similar results may be obtained through Fiji 1986 to WGS 84 (1) (tfm code 15876).","Horizontal accuracy 2m, vertical accuracy approximately 40 metres..",3398,-19.22,-16.1,176.81,-179.77,1,0,9607,-35.173,136.571,-36.964,1.37,-0.842,-4.718,-1.537,0
+238,15876,4720,4326,"Approximation at the +/- 2m level assuming that Fiji 1986 is equivalent to WGS 72. Parameter values taken from WGS 72 to WGS 84 (1) (tfm code 1237).",tbc,1094,-20.81,-12.42,176.81,-178.15,1,0,9606,0,0,4.5,0,0,0.554,0.2263,1
+239,1113,4209,4326,Derived at 41 stations.,"For military purposes only. Accuracy 20m, 33m and 20m in X, Y and Z axes.",2312,-30.66,-8.19,19.99,35.93,1,0,9603,-143,-90,-294,,,,,1
+240,1114,4209,4326,Derived at 9 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1051,-26.88,-17.78,19.99,29.38,1,0,9603,-138,-105,-289,,,,,0
+241,1115,4209,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,1058,-4.45,-2.3,28.98,30.86,1,1,9603,-153,-5,-292,,,,,0
+242,1116,4209,4326,Derived at 5 stations.,"For military purposes. Accuracy 3m, 3m and 8m in X, Y and Z axes.",1141,-30.66,-28.57,27.01,29.46,1,0,9603,-125,-108,-295,,,,,0
+243,1117,4209,4326,Derived at 6 stations.,"For military purposes. Accuracy 9m, 24m and 8m in X, Y and Z axes.",1150,-17.14,-9.37,32.68,35.93,1,0,9603,-161,-73,-317,,,,,0
+244,1118,4209,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1224,-27.32,-25.72,30.79,32.14,1,0,9603,-134,-105,-295,,,,,0
+245,1119,4209,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1259,-13.46,5.39,11.79,31.31,1,1,9603,-169,-19,-278,,,,,0
+246,1120,4209,4326,Derived at 5 stations.,"For military purposes. Accuracy 21m, 21m and 27m in X, Y and Z axes.",1260,-18.08,-8.19,21.99,33.71,1,0,9603,-147,-74,-283,,,,,0
+247,1121,4209,4326,"Derived at 10 stations. Replaced by Arc 1950 to WGS 84 (10), tfm code 6906.","For military purposes. Accuracy 5m, 8m and 11m in X, Y and Z axes.",1261,-22.42,-15.61,25.23,33.08,1,0,9603,-142,-96,-293,,,,,0
+248,6904,4209,4326,"Derived at 7 stations. Info source gives source CRS as Arc 1960. From inspection of parameter values, comparison of those from DMA TR8350.2 transformations and geographic applicability of CRS, OGP believes that this should be Arc 1950.","For military purposes only. Accuracy 13m, 25m and 7m in X, Y and Z axes.",1150,-17.14,-9.37,32.68,35.93,1,0,9603,-179,-81,-314,,,,,0
+249,6906,4209,4326,"Derived at 38 stations. Replaces Arc 1950 to WGS 84 (9), tfm code 1121.","For military purposes. Accuracy 10m in each of X, Y and Z axes.",1261,-22.42,-15.61,25.23,33.08,1,0,9603,-145,-97,-292,,,,,0
+250,1122,4210,4326,Derived at 25 stations.,For military purposes only. Accuracy 20m in each axis.,2311,-11.75,4.63,29.34,41.91,1,0,9603,-160,-6,-302,,,,,1
+251,1284,4210,4326,Derived at 24 stations.,"For military purposes. Accuracy 4m, 3m and 3m in X, Y and Z axes.",3264,-4.72,4.63,33.9,41.91,1,0,9603,-157,-2,-299,,,,,0
+252,1285,4210,4326,Derived at 12 stations.,"For military purposes. Accuracy 6m, 9m and 10m in X, Y and Z axes.",3316,-11.75,-0.99,29.34,40.48,1,0,9603,-175,-23,-303,,,,,0
+253,3998,4210,4326,"Derived at 3 stations. From inspection of parameter values and geographic applicability of CRS, OGP believes that the published source CRS (Arc 1950) has been misidentified by information source. Analysis of TR8350.2 contour charts suggest Arc 1960.",For military purposes. Accuracy 20m in each axis.,1058,-4.45,-2.3,28.98,30.86,1,0,9603,-153,-5,-292,,,,,0
+254,1123,4211,4326,"Note: The area of use cited for this transformation (Sumatra) is not consistent with the area of use (Java) for the Batavia (Genuk) coordinate reference system. Derived at 5 stations.",For military purposes. Accuracy 3m in each axis.,1355,-5.99,5.97,95.16,106.13,1,0,9603,-377,681,-50,,,,,1
+255,1813,4211,4326,Used by ARCO offshore NW Java area.,Oil industry operations.,2577,-6.89,-4.07,105.77,110.01,1,0,9603,-378.873,676.002,-46.255,,,,,0
+256,1814,4211,4326,Used by PT Komaritim for Nippon Steel during East Java Gas Pipeline construction.,Oil industry operations.,2588,-8.46,-6.8,112.8,117.01,1,0,9603,-377.7,675.1,-52.2,,,,,0
+257,15793,4212,4326,"Derived at 2 stations (S40 and M1, St Annes Tower) in 2004.",Accuracy 2.5m.,3218,13,13.39,-59.71,-59.37,1,0,9603,31.95,300.99,419.19,,,,,1
+258,15809,4725,4326,"Derived at 2 satellite stations. Note: NGA online html files carry a different dZ value - OGP believe this is an erroneous transcription from the TR8350.2 line above.","Military and topographic mapping. Accuracy +/- 25m in each axis.",3201,16.67,16.79,-169.59,-169.47,1,0,9603,189,-79,-202,,,,,1
+259,15919,4214,4326,Derived via WGS 72BE. Original transformation derived in 1979 at 4 stations on Yellow Sea coast.,Geophysical exploration in Yellow Sea.,3469,31.23,37.4,119.23,125.06,1,0,9606,15.53,-113.82,-41.38,0,0,0.814,-0.38,0
+260,15918,4214,4326,Provided by BGP to TOTAL in June 2006.,Geophysical exploration in Ordos basin. Accuracy stated as 1m within basin.,3466,35,39,107,110.01,1,0,9603,12.646,-155.176,-80.863,,,,,0
+261,15920,4214,4326,"Derived via WGS 72BE. Original transformation derived by GSI in 1980-81. The GSI memo incorrectly gave the parameters as from WGS 72 to Beijing 1954, but it has been determined by the OGP that the memo should have stated from Beijing 1954 to WGS 72BE.",Geophysical exploration in South China Sea.,3470,18.31,22.89,110.13,116.76,1,0,9606,31.4,-144.3,-74.8,0,0,0.814,-0.38,0
+262,15921,4214,4326,Provided by BGP to ELF in 1994.,Geophysical exploration in Tarim basin. Accuracy stated as 1m within basin.,3507,37,41.99,77.45,88,1,0,9603,15.8,-154.4,-82.3,,,,,1
+263,15936,4214,4326,Provided by Sinopec to TOTAL in January 2007.,Geophysical exploration in Ordos basin. Accuracy stated as 1m within basin.,3466,35,39,107,110.01,1,0,9603,11.911,-154.833,-80.079,,,,,0
+264,15935,4214,4326,Concatenated via WGS 72BE. Recomputation by Shelltech in 1981 of SSB 1980 observation.,Geophysical exploration in Bei Bu basin. Accuracy stated as 1m within basin.,3561,17.81,21.69,107.15,110.17,1,0,9606,18,-136.8,-73.7,0,0,0.814,-0.38,0
+265,6907,4713,4326,"Derived at 2 stations. Replaces Ayabelle Lighthouse to WGS 84 (1) (code 15800).",For military purposes only. Accuracy 10m in each axis.,3238,10.94,12.72,41.75,43.48,1,0,9603,-77,-128,142,,,,,1
+266,15800,4713,4326,"Derived at 1 satellite station. Replaced by Ayabelle Lighthouse to WGS 84 (2) (code 6907).",For military purposes only. Accuracy 25m in each axis.,1081,10.94,12.72,41.75,44.15,1,0,9603,-79,-129,145,,,,,0
+267,1124,4216,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3221,32.21,32.43,-64.89,-64.61,1,0,9603,-73,213,296,,,,,1
+268,15970,4216,4326,"Parameter values from Bermuda 1957 to BDA2000 (1) (code 15969). Assumes BDA2000 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy +/- 1 metre.",3221,32.21,32.43,-64.89,-64.61,1,0,9607,-292.295,248.758,429.447,-4.9971,-2.99,-6.6906,1.0289,0
+269,15819,4729,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25 m in each axis.",3208,-25.14,-25,-130.16,-130.01,1,0,9603,185,165,42,,,,,1
+270,1125,4218,4326,Derived in 1987 at 7 stations.,"For military purposes. Accuracy 6m, 5m and 6m in X, Y and Z axes.",3686,-4.23,13.68,-79.1,-66.87,1,0,9603,307,304,-318,,,,,1
+271,1597,4218,4326,Derived in 1995 by WGC at first order stations Recreo and Mena via multi-day ties to 4 IGS stations. Residuals under 20cm.,Oil exploration.,2315,4.75,5.68,-73,-72.25,1,0,9603,304.5,306.5,-318.1,,,,,0
+272,15715,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (1) (tfm code 15714).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3082,9.8,12.52,-73,-71.06,1,0,9607,-806.413,-263.5,-622.671,12.414219,-2.9908418,-39.034686,-20.81616,0
+273,15717,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (2) (tfm code 15716).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3083,9.39,11.59,-76.08,-73,1,0,9607,100.783,187.382,-47,-9.2238300,2.4238033,-8.3082783,-13.56561,0
+274,15719,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (3) (tfm code 15718).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3084,8,9.4,-77.48,-74.39,1,0,9607,336.026,348.565,252.978,-17.241289,-6.3064928,1.5620498,-5.771909,0
+275,15721,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (4) (tfm code 15720).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3085,5,9.4,-74.4,-71.99,1,0,9607,963.273,486.386,190.997,-16.485036,-1.6688258,21.692849,-13.89914,0
+276,15723,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (5) (tfm code 15722).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3086,5,8.01,-77.92,-74.39,1,0,9607,-90.29,247.559,-21.989,-8.6968853,-4.1880336,-12.808267,2.181658,0
+277,15725,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (6) (tfm code 15724).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3087,3,5.01,-77.68,-74.39,1,0,9607,-0.562,244.299,-456.938,6.8668710,-8.2526735,-9.2967797,3.74656,0
+278,15727,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (7) (tfm code 15726).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3088,-1.13,3.01,-79.1,-74,1,0,9607,-305.356,222.004,-30.023,-9.6904939,1.0319682,-19.757394,6.325747,0
+279,15729,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (8) (tfm code 15728).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3089,-4.23,7.1,-74.4,-66.87,1,0,9607,221.899,274.136,-397.554,2.8084459,-0.44850859,-2.810172,-2.199943,0
+280,1126,4219,4326,Accuracy estimate not available.,For military purposes.,1287,-3.3,-1.44,105.07,108.35,1,0,9603,-384,664,-48,,,,,1
+281,1318,4220,4326,,Used for oil exploration by Conoco.,2316,-8.59,-7.75,12.58,13.4,1,0,9603,-42.01,-332.21,-229.75,,,,,0
+282,1319,4220,4326,,Used for oil exploration by Texaco.,2317,-7.01,-6.01,12.08,12.84,1,0,9603,-40,-354,-224,,,,,0
+283,1320,4220,4326,"Replaced by Camacupa to WGS 84 (9). Used by Shell prior to 1994.",Oil exploration prior to 1994.,2321,-7.26,-6.03,11.08,12.09,1,0,9606,-37.2,-370.6,-224,0,0,0.554,0.219,0
+284,1321,4220,4326,"Derived as mean of 123 Transit passes at station Cabo Ledo NE base in November 1990. Used by Elf for block 7 up to December 1992 then replaced by Camacupa to WGS 84 (7). Used by Total in block 8, ExxonMobil block 24, Western Geophysical for spec. data.",Oil exploration.,2320,-17.26,-6.01,8.2,13.86,1,0,9603,-41.8,-342.2,-228.2,,,,,0
+285,1322,4220,4326,"Derived at station Djeno during coordination of platform PAL F2 in February 1992. Used by Elf for block 3 up to December 1992 then replaced by Camacupa to WGS 84 (7).",Oil exploration.,2318,-7.34,-6.66,11.74,12.5,1,0,9603,-55.5,-348,-229.2,,,,,0
+286,1323,4220,4326,Derived at Luanda observatory December 1992.,Used for oil exploration by Elf for 1993 block 7 shallow water survey.,2319,-10.09,-9.41,12.66,13.39,1,0,9603,-43,-337,-233,,,,,0
+287,1324,4220,4326,"Derived at platform PAL F2 in December 1992. For use in blocks 3, 7 and 17, replaced by Camacupa to WGS 84 (10) (code 1327).","Used for oil exploration by Elf for blocks 3, 7 and 17 between December 1992 and 1994 then superseded by Camacupa to WGS 84 (10). Used by Exxon for block 15 since 1993.",2322,-10.09,-6.03,10.83,13.39,1,0,9603,-48,-345,-231,,,,,0
+288,1325,4220,4326,"Derived at platform PAL F2 in December 1992. Used by Total for block 2 between December 1992 and 1994 then replaced by Camacupa to WGS 84 (10).",Oil exploration between December 1992 and 1994.,2317,-7.01,-6.01,12.08,12.84,1,0,9603,-48.6,-345.1,-230.8,,,,,0
+289,1326,4220,4326,"Derived by GPS on two Topnav DGPS reference stations at Djeno and Luanda. Replaces Camacupa to WGS 84 (3). In block 18 replaced by BP from 1999 by Camacupa to WGS 84 (10).",Used by Shell since 1994.,2323,-8.34,-6.03,11.08,12.75,1,0,9606,-41.057,-374.564,-226.287,0,0,0.554,0.219,0
+290,1327,4220,4326,Derived at platform PAL F2 in 1994 by Topnav using Doris.,Used for oil exploration by Elf in blocks 3 and 17 since 1994. Used by Total in block 2 since 1994. Adopted by BP-Amoco Elf and Exxon for blocks 18 and 31-33 in 1999.,2324,-8.59,-6.01,10.41,12.84,1,0,9603,-50.9,-347.6,-231,,,,,1
+291,1127,4221,4326,Derived at 20 stations.,For military purposes. Accuracy 5m in each axis.,3843,-54.93,-21.78,-73.59,-53.65,1,0,9603,-148,136,90,,,,,1
+292,1527,4221,4326,"Derived through ties at 2 stations (Cerro Colorado and Chihuido Sur) to 4 IGS stations in February 1995",Oil exploration.,2325,-37.5,-36.14,-70.5,-70.03,1,0,9603,-154.5,150.7,100.4,,,,,0
+293,1128,4222,4326,Derived at 5 stations.,"For military purposes. Accuracy 3m, 6m and 6m in X, Y and Z axes.",3309,-34.88,-22.13,16.45,32.95,1,0,9603,-136,-108,-292,,,,,1
+294,1129,4222,4326,"Parameter values are from Cape to Hartebeesthoek94 (1) (code 1504) assuming that Hartebeesthoek94 and WGS 84 are equivalent within the accuracy of the transformation. Residuals should not exceed 15 metres.",Accuracy 15m.,3309,-34.88,-22.13,16.45,32.95,1,0,9603,-134.73,-110.92,-292.66,,,,,0
+295,1130,4223,4326,Derived at 5 stations.,"For military purposes. Accuracy 6m, 9m and 8m in X, Y and Z axes.",1236,30.23,38.41,7.49,13.67,1,0,9603,-263,6,431,,,,,1
+296,1538,4223,4326,Derived at station Chaffar January 1995.,Oil exploration.,1489,33.22,38.41,7.81,13.67,1,0,9603,-260.1,5.5,432.2,,,,,0
+297,1131,4224,4326,Derived at 6 stations.,"For military purposes. Accuracy 6m, 9m and 5m in X, Y and Z axes.",3675,-22,-19.29,-62.57,-57.81,1,0,9603,-134,229,-29,,,,,0
+298,3972,4224,4326,"Mandatory for SICAD use until 2005. Replaced by Chua to SIRGAS 2000 (tfm code 4069).","Used by governmental agencies in Distrito Federal until adoption of SIRGAS 2000 by Brazil in 2005. Legally mandated for Cartography System of Distrito Federal (SICAD) until 2005.",3619,-15.94,-15.37,-48.1,-47.1,1,0,9603,-143.87,243.37,-33.52,,,,,1
+299,4834,4224,4326,"Parameter values from Chua to SIRGAS 2000 (1) (tfm code 4069) assuming that within the tfm accuracy SIRGAS 2000 is equivalent to WGS 84.","Cartography System of Distrito Federal (SICAD)",3619,-15.94,-15.37,-48.1,-47.1,1,0,9603,-144.35,242.88,-33.2,,,,,0
+300,1132,4225,4326,Derived at 17 stations.,"For military purposes. Accuracy 5m, 3m and 5m in X, Y and Z axes.",1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-206,172,-6,,,,,0
+301,6192,4225,4326,"Formed by concatenation of tfms codes 6191 and 1877. Used by Petrobras and ANP until February 2005 when replaced by Corrego Alegre 1970-72 to WGS 84 (4) (tfm code 6194).",Medium and small scale mapping.,1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-205.57,168.77,-4.12,,,,,1
+302,6194,4225,4326,"Parameter values from Corrego Alegre to SIRGAS 2000 (2) (tfm code 6193) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Used by ANP and Petrobras from February 2005, replacing use of tfm code 6192.",Medium and small scale mapping.,1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-206.05,168.28,-3.82,,,,,0
+303,1585,4227,4326,,"?",1227,32.31,37.3,34.96,42.38,1,1,9603,-177.5,14.1,237.6,,,,,0
+304,1586,4227,4326,"Derived in 1995 by CGG for Al Furat Petroleum Company. Can be approximated using geocentric translations of dX=-174.3m, dY=+14.1m, dZ=+237.6m.",Oil exploration.,2327,35.33,35.9,39.15,40.41,1,0,9606,-175.09,1.218,238.831,-0.047,0.019,0.808,0.1698,0
+305,1587,4227,4326,Derived at four stations by Topnav in 1997.,Oil exploration.,2328,35.79,36.5,40.5,41.39,1,0,9603,-191.77,15.01,235.07,,,,,0
+306,15741,4227,4326,Derived by Elf in 1991 from tfm code 1584 concatenated with a tfm from WGS72BE to WGS84.,Oil exploration. Accuracy 5m.,2329,34.49,35.9,39.3,40.81,1,0,9603,-187.5,14.1,237.6,,,,,0
+307,15742,4227,4326,Derived for 1998 Omar seismic survey and used in 2000 for El Isba seismic survey.,Oil exploration. Accuracy 5m.,3314,32.31,37.3,35.61,42.38,1,0,9603,-190.421,8.532,238.69,,,,,1
+308,15743,4227,4326,"Derived 2005 at 5 triangulation stations and using (EGM96 geoid model +1.15m). Used by Total/DEZPC for Jafra and Mazraa seismic surveys. Can be approximated using geocentric translations of dX=-190.6m, dY=+8.8m, dZ=+239.6m.",Oil exploration. Accuracy 0.5m.,2329,34.49,35.9,39.3,40.81,1,0,9606,-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225,0
+309,1244,4740,4326,"Mandated for use in Russia by GosStandard of Russia Decree #327 of August 9, 2001. Republished but with one significant figure less precision to parameter values in GOST R 51794-2008 of December 18 2008.",Geodetic applications. Accuracy better than 0.5 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,-1.08,-0.27,-0.9,0,0,-0.16,-0.12,0
+310,15843,4740,4326,"Derived through Glonass and GPS at 30 stations throughout USSR - Former Soviet Union (FSU).",Geodetic applications. Accuracy better than 1.5 metres.,1262,-90,90,-180,180,1,0,9607,0,0,1.5,0,0,-0.076,0,1
+311,1148,4229,4326,Derived at 14 stations.,"For military purposes. Accuracy 3m, 6m and 8m in X, Y and Z axes.",1086,21.89,33.82,24.7,37.91,1,0,9603,-130,110,-13,,,,,1
+312,1546,4229,4326,,Used for oil exploration by GUPCO.,2341,27.19,30.01,32.34,34.27,1,1,9603,-146.21,112.63,4.05,,,,,0
+313,1075,4230,4326,"Derived in 1987 by Geodetic for TPAO. Used on BP 1991/92 2D seismic surveys in central and eastern Turkish sector of Black Sea. In Turkey, replaced by tfm code 1784. Also adopted for use offshore Israel.",Oil Exploration,2896,31.35,43.45,28.03,41.47,1,0,9603,-89.05,-87.03,-124.56,,,,,0
+314,1087,4230,4326,,Topographic mapping.,1130,29.18,33.38,34.88,39.31,1,0,9603,-112,-110.3,-140.2,,,,,0
+315,1133,4230,4326,Derived at 85 stations. In Germany will be accepted by LBA for minerals management purposes as alternative to tfm 1052 or 1998.,"For military purposes. Accepted for minerals management in Germany. Accuracy 3m, 8m and 5m in X, Y and Z axes.",2420,34.88,71.21,-9.56,31.59,1,0,9603,-87,-98,-121,,,,,1
+316,1134,4230,4326,Derived at 52 stations.,For military purposes only. Accuracy 3m each axis.,2421,42.33,57.8,-4.87,17.17,1,0,9603,-87,-96,-120,,,,,0
+317,1135,4230,4326,Accuracy estimate not available.,For military purposes only.,2345,15.61,37.39,34.17,55.67,1,0,9603,-103,-106,-141,,,,,0
+318,1136,4230,4326,Derived at 4 stations.,For military purposes only. Accuracy 15m in each axis.,1078,32.88,36.21,29.95,35.2,1,0,9603,-104,-101,-140,,,,,0
+319,1137,4230,4326,Derived at 14 stations.,"For military purposes. Accuracy 6m, 8m and 8m in X, Y and Z axes.",2595,25.71,31.68,24.7,30,1,0,9603,-130,-117,-151,,,,,0
+320,1138,4230,4326,Derived at 40 stations.,For military purposes only. Accuracy 3m in each axis.,2343,49.11,60.9,-10.56,1.84,1,0,9603,-86,-96,-120,,,,,0
+321,1139,4230,4326,Derived at 20 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",2344,57.93,71.21,4.68,31.59,1,0,9603,-87,-95,-120,,,,,0
+322,1140,4230,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,3254,34.88,41.75,19.57,28.3,1,0,9603,-84,-95,-130,,,,,0
+323,1142,4230,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,2339,38.82,41.31,8.08,9.89,1,0,9603,-97,-103,-120,,,,,0
+324,1143,4230,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,2340,36.59,38.35,12.36,15.71,1,0,9603,-97,-88,-135,,,,,0
+325,1144,4230,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3275,35.74,36.05,14.27,14.63,1,0,9603,-107,-88,-149,,,,,0
+326,1145,4230,4326,Derived at 18 stations.,"For military purposes only. Accuracy 5m, 6m and 3m in X, Y and Z axes.",2338,35.26,43.82,-9.56,3.39,1,0,9603,-84,-107,-120,,,,,0
+327,1245,4230,4326,Derived at 4 stations.,For military purposes only. Accuracy 25m in each axis.,1236,30.23,38.41,7.49,13.67,1,0,9603,-112,-77,-145,,,,,0
+328,1275,4230,4326,"These same parameter values are used to transform to ETRS89. See ED50 to ETRS89 (10) (code 1650).",For applications to an accuracy of 2 metres.,1096,41.15,51.56,-9.86,10.38,1,0,9603,-84,-97,-117,,,,,0
+329,1311,4230,4326,"Based on ED50 to WGS72 (precise ephemeris) 6-nations agreement of 1981 to which precise to broadcast and broadcast to WGS 84 transformations have been concatenated.",Recommended transformation for UKCS and IrishCS petroleum purposes.,2342,47.42,63.89,-16.1,10.86,1,0,9606,-89.5,-93.8,-123.1,0,0,-0.156,1.2,0
+330,1440,4230,4326,,Used in oil industry.,3254,34.88,41.75,19.57,28.3,1,0,9603,-86,-92.2,-127.5,,,,,0
+331,1612,4230,4326,"Parameter values are taken from ED50 to ETRS89 (1), code 1588. Adopted for ED50 to WGS84 transformations offshore Norway north of 62N from April 2001 when it replaced code 1590. Included in Statens Kartverk programme wsktrans from v4.0.",Oil industry offshore.,2601,62,84.17,-3.7,39.65,1,0,9606,-116.641,-56.931,-110.559,0.893,0.921,-0.917,-3.52,0
+332,1613,4230,4326,"Approximation to 1 metre of concatenated transformation ED50 to WGS 84 (14), code 8653. 8653 remains the transformation promulgated by Statens Kartverk but 1613 recommended by EPSG for practical oil industry usage.",Approximation to 1 metre for oil industry use.,2334,56.08,62,1.37,11.14,1,0,9606,-90.365,-101.13,-123.384,0.333,0.077,0.894,1.994,0
+333,1627,4230,4326,"Parameter values from ED50 to ETRS89 (4) (code 1626). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3237,54.51,57.8,8,15.24,1,0,9606,-81.1,-89.4,-115.8,0.485,0.024,0.413,-0.54,0
+334,1629,4230,4326,"Parameter values from ED50 to ETRS89 (5) (code 1628). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1105,36,36.16,-5.42,-4.89,1,0,9603,-116.8,-106.4,-154.4,,,,,0
+335,1631,4230,4326,"Parameter values from ED50 to ETRS89 (6) (code 1630). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2335,38.59,40.11,1.14,4.39,1,0,9606,-181.5,-90.3,-187.2,0.144,0.492,-0.394,17.57,0
+336,1633,4230,4326,"Parameter values from ED50 to ETRS89 (7) (code 1632). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2336,35.26,43.56,-7.54,3.39,1,0,9606,-131,-100.3,-163.4,-1.244,-0.02,-1.144,9.39,0
+337,1635,4230,4326,"Parameter values from ED50 to ETRS89 (8) (code 1634). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2337,41.5,43.82,-9.37,-4.5,1,0,9606,-178.4,-83.2,-221.3,0.54,-0.532,-0.126,21.2,0
+338,1784,4230,4326,"Parameter values from ED50 to ETRS89 (9) (code 1783). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 2 metres.,1237,34.42,43.45,25.62,44.83,1,0,9606,-84.1,-101.8,-129.7,0,0,0.468,1.05,0
+339,1810,4230,4326,Derived via concatenation through WGS72. The ED50 to WGS72 step is the Sepplin 1974 value for all Europe.,Oil industry exploration and production operations.,2595,25.71,31.68,24.7,30,1,0,9606,-84,-103,-122.5,0,0,0.554,0.2263,0
+340,1853,4230,4326,Derived at a single point in Galway docks.,Used by Enterprise for Corrib.,2961,53.75,55.76,-12.5,-9.49,1,0,9603,-82.31,-95.23,-114.96,,,,,0
+341,1961,4230,4326,"Parameter values taken from ED87 to WGS 84 (2) (tfm code 1960) assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3m.",Used by NAM for offshore operations.,1630,51.45,55.77,2.53,6.41,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.4428,1.218,0
+342,1985,4230,4326,May be taken as a transformation from ED50 to ETRS89 - see tfm code 5040.,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-87.987,-108.639,-121.593,,,,,0
+343,1989,4230,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-74.292,-135.889,-104.967,0.524,0.136,-0.61,-3.761,0
+344,1998,4230,4326,"Approximation to better than 0.5m of transformation adopted in June 2003 (see ED50 to WGS 84 (35), code 1052). Acceptable to Landesbergamt for Lower Saxony and Bundesanstalt für Seeschifffahrt und Hydrographie.",Recommended transformation for Germany North Sea petroleum purposes.,2879,53.6,55.92,3.34,8.88,1,0,9606,-157.89,-17.16,-78.41,2.118,2.697,-1.434,-5.38,0
+345,1999,4230,4326,"Parameter values taken from ED87 to WGS 84 (2) (tfm code 1960) assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3m.",Used by NAM for offshore operations.,1630,51.45,55.77,2.53,6.41,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.04428,1.218,0
+346,3904,4230,4326,"Parameter values from ED87 to WGS 84 (32) (tfm code 3905), assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3-5m. Used by NAM for offshore operations until mid 2004, then replaced by tfm code 1311.","E&P operations in the Dutch sector of the North Sea.",1630,51.45,55.77,2.53,6.41,1,0,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218,0
+347,15964,4230,4326,Developed by the Portuguese Hydrographic Institute and used by the Directorate of Energy and Geology.,Hydrography and minerals management offshore Portugal.,3537,34.91,41.88,-13.87,-7.24,1,0,9603,-86.277,-108.879,-120.181,,,,,0
+348,1146,4231,4326,,"?",2330,51.03,62.01,-5.05,11.14,1,0,9606,-82.981,-99.719,-110.709,-0.10470,0.031002,0.080402,-0.3143,0
+349,1960,4231,4326,,Scientific research.,1297,34.88,71.21,-10.56,31.59,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.04428,1.218,0
+350,3905,4231,4326,"Parameter values taken from ED87 to ETRS89 (1) (tfm code 4078) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the transformation. Used as a tfm between ED50 and WGS 84 - see code 3904.",Scientific research.,1297,34.88,71.21,-10.56,31.59,1,0,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218,1
+351,1256,4232,4326,"Derived at 7 stations. Replaced by Fahud to WGS 84 (3) (code 6908).","For military purposes. Accuracy 3m, 3m and 9m in X, Y and Z axes.",4009,16.59,26.42,51.99,59.91,1,0,9603,-346,-1,224,,,,,0
+352,1438,4232,4326,,Oil exploration.,4009,16.59,26.42,51.99,59.91,1,0,9606,-333.102,-11.02,230.69,0,0,0.554,0.219,1
+353,6908,4232,4326,"Derived at 11 stations. Replaces Fahud to WGS 84 (1) (code 1256).","For military purposes. Accuracy 3m, 3m and 6m in X, Y and Z axes.",4009,16.59,26.42,51.99,59.91,1,0,9603,-345,3,223,,,,,0
+354,1894,4233,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1152,-3.47,8.1,69.29,77.08,1,1,9603,-133,-321,50,,,,,0
+355,7033,4744,4326,Derived by concatenation of parameter values published by IGN Paris from Nahrwan 1934 to WGS 72 at the Nahrwan SE Base station near Baghdad with DMA WGS 72 to WGS 84 parameter values. For more accurate transformation away from origin see codes 7008-7032.,Oil exploration.,3625,29.06,37.39,38.79,48.61,1,0,9603,-242.2,-144.9,370.3,,,,,1
+356,15879,4747,4326,"Approximation at the +/- 1m level assuming that GR96 is equivalent to WGS 84 within the accuracy of the transformation.","For applications with an accuracy of +/- 1m.",1107,56.38,87.03,-75,8.12,1,0,9603,0,0,0,,,,,1
+357,1152,4236,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,3315,21.87,25.34,119.25,122.06,1,0,9603,-637,-549,-203,,,,,1
+358,1242,4237,4326,"Parameter value error in info source Hungarian text but correct in English summary. Replaces HD72 to WGS 84 (2) (code 1831).",Accuracy at metre level throughout Hungary.,1119,45.74,48.58,16.11,22.9,1,0,9603,52.17,-71.82,-14.9,,,,,1
+359,1448,4237,4326,"Parameter values taken from HD72 to ETRS89 (2) (code 1449) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces HD72 to WGS 84 (1) (code 1830).","Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",1119,45.74,48.58,16.11,22.9,1,0,9607,52.684,-71.194,-13.975,0.312,0.1063,0.3729,1.0191,0
+360,1677,4237,4326,"Parameter values taken from HD72 to ETRS89 (1) (code 1273) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level.",1119,45.74,48.58,16.11,22.9,1,1,9607,56,75.77,15.31,-0.37,-0.2,-0.21,-1.01,0
+361,1830,4237,4326,"Parameter values taken from HD72 to ETRS89 (1) (code 1829) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. OGP recommends use of newer MSZ 7222 equivalent (tfm code 1448) in preference to this transformation.","Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",1119,45.74,48.58,16.11,22.9,1,0,9607,56,-75.77,-15.31,0.37,0.2,0.21,1.01,0
+362,1831,4237,4326,"Derived at fundamental point Szolohegy and tested at 99 stations throughout Hungary. OGP recommends use of newer transformation (tfm code 1242) in preference to this transformation.",Accuracy better than 1m in all three dimensions throughout Hungary.,1119,45.74,48.58,16.11,22.9,1,0,9603,57.01,-69.97,-9.29,,,,,0
+363,1248,4238,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,4020,-10.98,5.97,95.16,141.01,1,0,9603,-24,-15,5,,,,,1
+364,1832,4238,4326,"Derived via coordinates of 2 Pulse8 stations. Use of ID74 to WGS 84 (3) (code 1833) is recommended.",For oil industry purposes.,4020,-10.98,5.97,95.16,141.01,1,0,9606,2.691,-14.757,4.724,0,0,0.774,-0.6,0
+365,1833,4238,4326,"Parameter values from ID74 to DGN95 (1) (code 15911) assuming that DGN95 is equivalent to WGS 84 within the accuracy of the transformation.","Standard deviations of translations are 1.3, 1.1 and 3.6m, of rotations 0.11, 0.06 and 0.04 sec and ppm 0.18.",4020,-10.98,5.97,95.16,141.01,1,0,9607,-1.977,-13.06,-9.993,-0.364,-0.254,-0.689,-1.037,0
+366,1153,4239,4326,Derived at 11 stations.,"For military purposes. Accuracy 15m, 6m and 12m in X, Y and Z axes.",3317,5.63,20.46,97.34,105.64,1,0,9603,217,823,299,,,,,1
+367,1154,4240,4326,"Derived at 62 stations. Replaced by Indian 1975 to WGS 84 (2) (code 1304).","For military purposes. Accuracy 3m, 2m and 3m in X, Y and Z axes.",3741,5.63,20.46,97.34,105.64,1,0,9603,209,818,290,,,,,0
+368,1304,4240,4326,"Derived at 62 stations. Replaces Indian 1975 to WGS 84 (1) (code 1154).","For military purposes. Accuracy 3m, 2m and 3m in X, Y and Z axes.",3741,5.63,20.46,97.34,105.64,1,0,9603,210,814,289,,,,,1
+369,1537,4240,4326,Derived in 1995 at point RTSD181.,Oil exploration.,2358,6.74,8.16,102.16,103.05,1,0,9603,204.64,834.74,293.8,,,,,0
+370,1812,4240,4326,,Cadastral survey.,3317,5.63,20.46,97.34,105.64,1,0,9606,293,836,318,0.5,1.6,-2.8,2.1,0
+371,1084,4242,4326,Derived via NAD27 and WGS 72. Preliminary values derived by Survey Department but not officially promulgated.,For applications requiring 5m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9603,70,207,389.5,,,,,1
+372,1085,4242,4326,"Derived at 4 stations, tested at a further 9.",For applications requiring 2m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9603,65.334,212.46,387.63,,,,,0
+373,1086,4242,4326,"Derived at 4 stations, tested at a further 9.",For applications requiring 1m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,1,9607,-33.722,153.789,94.959,8.581,4.478,-4.54,-8.95,0
+374,15927,4242,4326,"Derived at 4 stations, tested at a further 9. Also used as tfm to JAD69 to JAD2001 (see code 15926).
+Note: Info source paper contains an error in sign of dS, subsequently confirmed by primary author and NLA of Jamaica, and corrected in this record.",For applications requiring 1m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9607,-33.722,153.789,94.959,8.581,4.478,-4.54,8.95,0
+375,1930,4642,4326,,"Accuracy better than +/- 1 metre.",2820,-22.73,-22.49,167.36,167.61,1,1,9606,244.416,85.339,168.114,-8.9353,7.7523,12.5953,14.268,0
+376,15848,4642,4326,,"Accuracy +/- 10 metres.",2820,-22.73,-22.49,167.36,167.61,1,0,9603,-13,-348,292,,,,,1
+377,1157,4244,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3310,5.86,9.88,79.64,81.95,1,0,9603,-97,787,86,,,,,1
+378,1158,4245,4326,Derived at 6 stations.,"For military purposes. Accuracy 10m, 8m and 6m in X, Y and Z axes.",4223,1.13,7.81,99.59,105.82,1,0,9603,-11,851,5,,,,,1
+379,1059,4246,4326,,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-294.7,-200.1,525.5,,,,,1
+380,1516,4247,4326,Also used for PSAD56 to WGS 84 transformations.,"Parameter values estimated accuracy: ± 2.0m; ± 2.7m; ± 1.3m respectively.",2363,3.56,10.8,-67.49,-59.8,1,0,9603,-273.5,110.6,-357.9,,,,,1
+381,1201,4248,4326,Derived at 63 stations. DMA also lists Colombia as area of applicability but PSAD56 is not used in that country.,"For military purposes only. Accuracy 17m, 27m and 27m in X, Y and Z axes.",2399,-45,12.52,-81.41,-56.47,1,0,9603,-288,175,-376,,,,,1
+382,1202,4248,4326,Derived at 5 stations.,"For military purposes only. Accuracy 5m, 11m and 14m in X, Y and Z axes.",1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,-270,188,-388,,,,,0
+383,1203,4248,4326,"Derived at 1 station. Replaced by PSAD56 to WGS 84 (15) (code 6971).",For military purposes. Accuracy 25m in each axis.,2402,-21.51,-17.5,-70.49,-68.18,1,0,9603,-270,183,-390,,,,,0
+384,1204,4248,4326,"Derived at 3 stations. Replaced by PSAD56 to WGS 84 (17) (code 6973).",For military purposes. Accuracy 20m in each axis.,2403,-45,-38.99,-75.22,-71.1,1,0,9603,-305,243,-442,,,,,0
+385,1205,4248,4326,"Derived at 4 stations. Note that although the PSAD56 network included Colombia the CRS is not used there: see Bogota 1975 (CRS code 4218).",For military purposes. Accuracy 15m in each axis.,3229,-4.23,12.52,-79.1,-66.87,1,0,9603,-282,169,-371,,,,,0
+386,1206,4248,4326,Derived at 11 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",3241,-5.01,1.45,-81.03,-75.21,1,0,9603,-278,171,-367,,,,,0
+387,1207,4248,4326,Derived at 9 stations.,"For military purposes. Accuracy 6m, 14m and 5m in X, Y and Z axes.",1114,1.18,10.7,-61.39,-55.77,1,0,9603,-298,159,-369,,,,,0
+388,1208,4248,4326,Derived at 6 stations.,"For military purposes only. Accuracy 6m, 8m and 12m in X, Y and Z axes.",1189,-21.05,-0.03,-84.68,-68.67,1,0,9603,-279,175,-379,,,,,0
+389,1209,4248,4326,Derived at 24 stations.,"For military purposes only. Accuracy 9m, 14m and 15m in X, Y and Z axes.",1251,0.64,16.75,-73.38,-58.95,1,0,9603,-295,173,-371,,,,,0
+390,1582,4248,4326,Derived May 1995 by Geoid for Total. OSU91A geoid model used.,Oil exploration.,2400,-14.43,-13.56,-68.96,-67.79,1,0,9603,-259.73,173.12,-398.27,,,,,0
+391,1583,4248,4326,Derived July 1997 by Geoid from data recorded by UGA for Total. OSU91A geoid model used.,Oil exploration.,2401,-21.71,-21.09,-63.44,-62.95,1,0,9603,-307.7,265.3,-363.5,,,,,0
+392,1811,4248,4326,Used by Petrobras for shelf operations.,Oil industry exploration.,1754,-1.05,5.6,-51.64,-48,1,0,9603,-291.87,106.37,-364.52,,,,,0
+393,3990,4248,4326,"Parameter values from PSAD56 to SIRGAS 1995 (1) (code 3971). Assumes SIRGAS 1995 and WGS 84 can be considered the same to within the accuracy of the transformation.","Suitable for mapping at 1:25,000 scale and smaller.",3241,-5.01,1.45,-81.03,-75.21,1,0,9607,-60.31,245.935,31.008,-12.324,-3.755,7.37,0.447,0
+394,6971,4248,4326,"Derived at 5 stations. Replaces PSAD56 to WGS 84 (3) (code 1203). Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6949.",For military purposes. Accuracy 10m in each axis.,4231,-26,-17.5,-70.79,-67,1,0,9603,-302,272,-360,,,,,0
+395,6972,4248,4326,Derived at 7 stations. Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6950.,For military purposes. Accuracy 10m in each axis.,4222,-36,-26,-72.87,-68.28,1,0,9603,-328,340,-329,,,,,0
+396,6973,4248,4326,"Derived at 6 stations. Replaces PSAD56 to WGS 84 (4) (code 1204). Info source gives S limit as 44°S but Chilean IGM states that PSAD56 limit is 43°30'S. Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6951.",For military purposes. Accuracy 10m in each axis.,4221,-43.5,-35.99,-74.48,-70.39,1,0,9603,-352,403,-287,,,,,0
+397,15967,4761,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. HTRS96 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",1076,41.62,46.54,13,19.43,1,0,9603,0,0,0,,,,,1
+398,1159,4250,4326,Derived at 8 stations.,"For military purposes. Accuracy 2m, 3m and 2m in X, Y and Z axes.",1104,1.4,11.16,-3.79,2.1,1,0,9603,-130,29,364,,,,,1
+399,1160,4251,4326,Derived at 4 stations.,For military purposes only. Accuracy 15m in each axis.,3270,4.29,8.52,-11.52,-7.36,1,0,9603,-90,40,88,,,,,1
+400,1887,4182,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,1344,39.3,39.77,-31.34,-31.02,1,0,9603,-425,-169,81,,,,,1
+401,1982,4182,4326,Derived at 2 stations in 1999.,For low resolution applications.,1344,39.3,39.77,-31.34,-31.02,1,0,9603,-422.651,-172.995,84.02,,,,,0
+402,1161,4253,4326,Derived at 6 stations.,"For military purposes. Accuracy 8m, 11m and 9m in X, Y and Z axes.",2364,7.75,19.45,116.89,125.88,1,0,9603,-133,-77,-51,,,,,1
+403,1162,4253,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2365,4.99,10.52,119.76,126.65,1,0,9603,-133,-79,-72,,,,,0
+404,1529,4254,4326,"Derived through ties at 3 stations (RC03, TOTAL11 and MP12) to 3 IGS stations in November 1995",Oil exploration.,2357,-55.11,-52.59,-68.64,-63.73,1,0,9606,18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013,0
+405,1892,4254,4326,Derived at 2 stations. As the source CRS was used for the border survey this transformation is probably also applicable to adjacent areas of Argentina.,Accuracy 25m in each axis.,2805,-55.96,-51.99,-74.83,-66.33,1,0,9603,16,196,93,,,,,1
+406,1246,4255,4326,Accuracy estimate not available.,For military purposes only.,1024,29.4,38.48,60.5,74.92,1,0,9603,-333,-222,114,,,,,1
+407,1164,4256,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2369,-4.86,-4.5,55.3,55.59,1,0,9603,41,-220,-134,,,,,1
+408,1549,4208,4326,,Oil exploration.,2307,-28.41,-17.59,-48.8,-35.18,1,1,9603,-158,315,-148,,,,,0
+409,1550,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2308,-9.8,-8.39,-39.04,-37.09,1,0,9603,-139.62,290.53,-150.29,,,,,0
+410,1551,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2309,-10.61,-9.79,-39.14,-37.99,1,0,9603,-141.15,293.44,-150.56,,,,,0
+411,1552,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2310,-12.27,-10.6,-39.07,-37.98,1,0,9603,-142.48,296.03,-149.74,,,,,0
+412,10089,4208,4326,"Used by ExxonMobil for block BMS1. See WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.",Oil exploration.,2962,-28.41,-22.66,-48.8,-40.2,1,0,9603,-163.466,317.396,-147.538,,,,,0
+413,10090,4208,4326,"Used by ExxonMobil for block BC10. Derived from earlier Shell position vector tfm of dX = -181m, dY = +294m, dZ = -144.5m, rX = rY = 0, rZ = +0.554s, dS = +0.219 ppm. See Aratu to WGS 84 (14) (tfm code 5053) which Petrobras now recommends for the area.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-170,305,-145,,,,,0
+414,10091,4208,4326,"Used by ExxonMobil for block BMES1. See Aratu to WGS 84 (15) (tfm code 5055) which Petrobras now recommends for the area.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-162.904,312.531,-137.109,,,,,0
+415,10092,4208,4326,"Used by ExxonMobil for block BP1. Also used by BG as part of a concatenated tfm to SAD69 for offshore regional studies. See WGS 84 (13) (tfm code 5051) for transformation Petrobras now recommends for the area.",Oil exploration.,2965,-35.71,-28.11,-53.38,-44.71,1,0,9603,-158,309,-151,,,,,0
+416,10093,4208,4326,"Used by ExxonMobil for offshore regional studies. See Aratu to WGS 84 (13) through (21) (tfm codes 5051-67 [odd numbers only]) which Petrobras now recommends for various areas.",Oil exploration.,2966,-34,-18,-53.38,-35.19,1,0,9603,-161,308,-142,,,,,0
+417,10094,4208,4326,Derived by IGN in 1992 at 7 stations within Nouakchott city.,Oil exploration.,2972,17.89,18.25,-16.11,-15.83,1,1,9603,124.5,-63.5,-281,,,,,0
+418,15710,4208,4326,"Replaced by Aratu to WGS 84 (14) (tfm code 5053) which Petrobras now recommends for the area.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-160,315,-142,,,,,0
+419,15711,4208,4326,"Replaced by Aratu to WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.",Oil exploration.,2962,-28.41,-22.66,-48.8,-40.2,1,0,9603,-158,309,-147,,,,,0
+420,15712,4208,4326,"Replaced by Aratu to WGS 84 (15) (tfm code 5055) which Petrobras now recommends for the area.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-161,310,-145,,,,,0
+421,5051,4208,4326,"Parameters from Aratu to SIRGAS 2000 (1) (tfm code 5050) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfm codes 15711 and 15734.",Oil exploration.,3700,-35.71,-22.66,-53.38,-40.2,1,0,9603,-157.84,308.54,-146.6,,,,,0
+422,5053,4208,4326,"Parameters from Aratu to SIRGAS 2000 (2) (tfm code 5052) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfm codes 15710 and 15754.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-160.31,314.82,-142.25,,,,,0
+423,5055,4208,4326,"Parameters from Aratu to SIRGAS 2000 (3) (tfm code 5054) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfms 15712 and 15754.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-161.11,310.25,-144.64,,,,,0
+424,5057,4208,4326,"Parameters from Aratu to SIRGAS 2000 (4) (tfm code 5056) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3699,-17.7,-13.01,-39.22,-34.6,1,0,9603,-160.4,302.29,-144.19,,,,,0
+425,5059,4208,4326,"Parameters from Aratu to SIRGAS 2000 (5) (tfm code 5058) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3692,-13.57,-11.18,-39.09,-35.31,1,0,9603,-153.54,302.33,-152.37,,,,,0
+426,5061,4208,4326,"Parameters from Aratu to SIRGAS 2000 (6) (tfm code 5060) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfms 1550-1552.",Oil exploration.,3693,-12.27,-8.39,-39.14,-37.09,1,0,9603,-151.5,300.09,-151.15,,,,,0
+427,5063,4208,4326,"Parameters from Aratu to SIRGAS 2000 (7) (tfm code 5062) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3696,-13.58,-8.73,-37.34,-32.01,1,0,9603,-156.8,298.41,-147.41,,,,,0
+428,5065,4208,4326,"Parameters from Aratu to SIRGAS 2000 (8) (tfm code 5064) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation.Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3697,-10.17,-4.6,-35.1,-29.13,1,0,9603,-157.4,295.05,-150.19,,,,,0
+429,5067,4208,4326,"Parameters from Aratu to SIRGAS 2000 (9) (tfm code 5066) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3698,-6.5,4.26,-44.79,-26,1,0,9603,-151.99,287.04,-147.45,,,,,1
+430,15754,4208,4326,"Mean for 3 basins. See Aratu to WGS 84 (10) through (12) (codes 15710-12) for transformations for individual basins. Replaced by Aratu to WGS 84 (13) through (15) (tfm codes 5051, 5053 and 5055) which Petrobras now recommends for the areas.",Oil exploration.,2307,-28.41,-17.59,-48.8,-35.18,1,0,9603,-158,315,-148,,,,,0
+431,1149,4258,4326,,ETRS89 and WGS 84 are realizations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1298,32.88,84.17,-16.1,40.18,1,0,9603,0,0,0,,,,,1
+432,1571,4258,4326,"Dutch sources also quote an equivalent transformation with parameter values dX=+593.032 dY=+26.000 dZ=+478.741m, rX rY rZ and dS as this tfm. These values belong to a different transformation method and cannot be used with the Coordinate Frame method.",Accuracy 0.5m,1172,50.75,55.77,2.53,7.22,1,1,9607,565.04,49.91,465.84,0.409394,-0.359705,1.86849,4.0772,0
+433,1330,4259,4326,"Derived at Station Y in April 1989 using 572 transit satellite passes. Computed value for dZ was -96.42 but -96.38 has been utilised. Replaced Malongo 1987 to WGS 84 (3) (code 15791) in 1989. Replaced by Malongo 1987 to WGS 84 (2) (code 1557) in 1990.",Offshore oil exploration and production between April 1989 and June 1990.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-252.95,-4.11,-96.38,,,,,0
+434,1557,4259,4326,"Derived at station Y in July 1990 through Transit single point positioning using 187 passes by Geodetic Survey Ltd. Replaces Malongo 1987 to WGS 84 (1) (trf code 1330).",Offshore oil exploration and production from June 1990.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-254.1,-5.36,-100.29,,,,,1
+435,15791,4259,4326,"Derived via WGS 72BE by Geodetic for Chevron in 1987 by single point Transit translocation at 1 station (Malongo Y). Replaced in 1989 by Malongo 1987 to WGS 84 (1) (code 1330).",Oil industry exploration and production between September 1987 and April 1989.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-259.99,-5.28,-97.09,,,,,0
+436,1316,4260,4326,,"?",1060,1.65,13.09,8.32,16.21,1,1,9603,-70.9,-151.8,-41.4,,,,,0
+437,1166,4261,4326,Derived at 9 stations.,"For military purposes. Accuracy 5m, 3m and 3m in X, Y and Z axes.",3280,27.66,35.97,-13.24,-1.01,1,0,9603,31,146,47,,,,,1
+438,1165,4262,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1089,12.36,18.1,36.44,43.31,1,0,9603,639,405,60,,,,,1
+439,1067,4263,4326,"Used by Statoil for deep water blocks 210, 213, 217 and 218. Parameter values interpolated from Racal Survey geocentric translation contour charts for each of these four blocks and then meaned.",Oil industry exploration and production.,3817,3.24,5.54,4.41,6.29,1,0,9603,-92.1,-89.9,114.9,,,,,0
+440,1167,4263,4326,"Derived at 2 stations. Note: Minna is used in Nigeria, not Cameroon.",For military purposes only. Accuracy 25m in each axis.,3226,1.65,13.09,8.45,16.21,1,0,9603,-81,-84,115,,,,,0
+441,1168,4263,4326,Derived at 6 stations.,"For military purposes. Accuracy 3m, 6m and 5m in X, Y and Z axes.",1178,1.92,13.9,2.66,14.65,1,0,9603,-92,-93,122,,,,,1
+442,1534,4263,4326,,Oil exploration.,2371,4.22,6.95,4.35,9.45,1,1,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0
+443,1754,4263,4326,"Derived at 8 stations across the Niger delta. Used by Shell SPDC throughout southern Nigeria onshore, delta and shallow offshore from 1994 and by Total in OPL246. Sometimes given with parameter values to greater resolution; values here are adequate.",Oil exploration.,2371,4.22,6.95,4.35,9.45,1,0,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0
+444,1818,4263,4326,Concatenated via WGS 72BE.,Oil industry operations.,1717,1.92,6.14,2.66,7.82,1,0,9606,-89,-112,125.9,0,0,0.814,-0.38,0
+445,1819,4263,4326,Used by Shell in southern Nigeria and Total in OPL246.,Oil industry operations.,2371,4.22,6.95,4.35,9.45,1,1,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0
+446,1820,4263,4326,Derived by Nortech at station L40 Minna using NNPC 1989 GPS network tied to 4 ADOS stations. Used by Conoco in OPLs 219-220 to cm precision and ExxonMobil in OPL 209 to dm precision..,Oil industry operations.,3813,3.25,5.54,4.01,6.96,1,0,9603,-93.2,-93.31,121.156,,,,,0
+447,1821,4263,4326,"Derived by Elf Petroleum Nigeria in 1994 at 3 stations (M101 onshore, offshore platforms XSW06 and XSV39) and used in OMLs 99-102 and OPLs 222-223.",Oil industry operations.,3814,3.25,4.51,7.16,8.25,1,0,9603,-88.98,-83.23,113.55,,,,,0
+448,1822,4263,4326,"Used by Shell SNEPCO for OPLs 209-213 and 316. Derived during 1990 Niger Delta control survey at 4 stations (XSU27, 30 31 and 35).",Oil industry exploration and production.,3815,4.22,6.31,3.83,5.17,1,0,9603,-92.726,-90.304,115.735,,,,,0
+449,1823,4263,4326,"Used by Shell SNEPCO for OPLs 217-223. Derived during 1990 Niger Delta control survey at 4 stations (XSU38, 41, 44 and 45).",Oil industry exploration and production.,3816,3.24,3.86,5.58,8,1,0,9603,-93.134,-86.647,114.196,,,,,0
+450,1824,4263,4326,Used by Shell SNEPCO for Gongola basin.,Oil industry exploration and production.,3824,8.78,11.63,9.41,12.13,1,0,9603,-93,-94,124,,,,,0
+451,15706,4263,4326,Used by Elf in Blocks OPL 222 and OPL 223 and by Mobil in 1994.,Oil industry exploration.,1717,1.92,6.14,2.66,7.82,1,0,9603,-93.6,-83.7,113.8,,,,,0
+452,15705,4263,4326,"Derived via WGS 72(BE). Minna to WGS 72(BE) transformation derived in 1981 for Mobil E&P Nigeria (MEPCON) by Geodetic Survey through Transit translocation at six stations in southern Nigeria. Used by MEPCON in blocks OPL 215 and 221.",Oil industry exploration.,3819,3.25,4.23,5.02,7.31,1,0,9606,-83.13,-104.95,114.63,0,0,0.554,0,0
+453,6196,4263,4326,Used by Addax for OPL 118 and OML 124. Derived in 1999 at 4 stations during  extension into OPL 118 of control in Chevron block OML 53.,Oil industry exploration and production.,4127,5.56,5.74,6.72,6.97,1,0,9603,-93.179,-87.124,114.338,,,,,0
+454,15493,4263,4326,"Adopted by MPN for all joint venture operations from 1/1/1996.",Oil industry exploration and production.,3590,3.99,5.01,5.99,8.01,1,0,9603,-94.031,-83.317,116.708,,,,,0
+455,15755,4263,4326,Derived in 1995 at unspecified DMA ADOS stations and Racal stations M101 and ZVS3003. Used by Elf in onshore Block OML 58.,Oil industry exploration and production. Accuracy 0.5m.,3113,5.05,5.36,6.53,6.84,1,0,9603,-90.2,-87.32,114.17,,,,,0
+456,1329,4264,4326,"Superseded in 1990 by trf Malongo 1987 to WGS 84 (2), code 1557. Malongo 1987 is an offshore extension of the Mhast cooordinate system.","Used for oil exploration by Chevron until superseded in 1990 by trf Malongo 1987 to WGS 84 (2), code 1557.",1317,-6.04,-5.05,10.53,12.18,1,1,9603,-252.95,-4.11,-96.38,,,,,0
+457,1088,4265,4326,,Oil exploration and production,2882,43.62,45.73,12.22,13.96,1,0,9603,-223.7,-67.38,1.34,,,,,0
+458,1089,4265,4326,,Oil exploration and production,2883,41.95,44.04,13.61,16.14,1,0,9603,-225.4,-67.7,7.85,,,,,0
+459,1090,4265,4326,,Oil exploration and production,2884,40.72,42.28,15.95,18.63,1,0,9603,-227.1,-68.1,14.4,,,,,0
+460,1091,4265,4326,,Marine navigation,2885,39.77,41.03,17.95,18.99,1,0,9603,-231.61,-68.21,13.93,,,,,0
+461,1092,4265,4326,,Marine navigation,2886,37.67,40.47,16.55,18.93,1,0,9603,-225.06,-67.37,14.61,,,,,0
+462,1093,4265,4326,,Marine navigation,2887,35.22,37.48,13,15.16,1,0,9603,-229.08,-65.73,20.21,,,,,0
+463,1094,4265,4326,,Marine navigation,2888,35.28,38.45,10.68,13.01,1,0,9603,-230.47,-56.08,22.43,,,,,0
+464,1169,4265,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2339,38.82,41.31,8.08,9.89,1,0,9603,-225,-65,9,,,,,0
+465,1660,4265,4326,"Parameter values from Monte Mario to ETRS89 (1) (code 1659). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2372,37.86,47.1,6.62,18.58,1,0,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68,1
+466,1662,4265,4326,"Parameter values from Monte Mario to ETRS89 (2) (code 1661). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2339,38.82,41.31,8.08,9.89,1,0,9606,-168.6,-34,38.6,-0.374,-0.679,-1.379,-9.48,0
+467,1664,4265,4326,"Parameter values from Monte Mario to ETRS89 (3) (code 1663). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2340,36.59,38.35,12.36,15.71,1,0,9606,-50.2,-50.4,84.8,-0.69,-2.012,0.459,-28.08,0
+468,1163,4266,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1100,-6.37,2.32,7.03,14.52,1,0,9603,-74,-130,42,,,,,1
+469,1532,4266,4326,Derived as mean of Doris determinations at 3 stations in Port Gentil area in 1994.,Oil exploration.,1100,-6.37,2.32,7.03,14.52,1,0,9603,-80.7,-132.5,41.1,,,,,0
+470,1170,4267,4326,Derived at 15 stations.,"For military purposes. Accuracy 3m, 9m and 12m in X, Y and Z axes.",2418,13,23.25,-85.01,-59.37,1,0,9603,-3,142,183,,,,,0
+471,1171,4267,4326,Derived at 19 stations.,"For military purposes only. Accuracy 8m, 3m and 5m in X, Y and Z axes.",2419,7.98,18.49,-92.29,-82.53,1,0,9603,0,125,194,,,,,0
+472,1172,4267,4326,Derived at 112 stations.,"For military purposes only. Accuracy 15m, 11m and 6m in X, Y and Z axes.",1061,40.04,86.46,-141.01,-47.74,1,0,9603,-10,158,187,,,,,1
+473,1173,4267,4326,Derived at 405 stations.,"For military purposes only. Accuracy 5m, 5m and 6m in X, Y and Z axes.",1323,24.41,49.38,-124.79,-66.91,1,0,9603,-8,160,176,,,,,0
+474,1174,4267,4326,Derived at 129 stations.,"For military purposes only. Accuracy 5m, 5m and 8m in X, Y and Z axes.",2389,24.41,49.38,-97.22,-66.91,1,0,9603,-9,161,179,,,,,0
+475,1175,4267,4326,Derived at 276 stations.,"For military purposes only. Accuracy 5m, 3m and 3m in X, Y and Z axes.",2390,25.83,49.05,-124.79,-89.64,1,0,9603,-8,159,175,,,,,0
+476,1176,4267,4326,Derived at 47 stations.,"For military purposes only. Accuracy 5m, 9m and 5m in X, Y and Z axes.",2412,54.34,71.4,-168.26,-129.99,1,0,9603,-5,135,172,,,,,0
+477,1177,4267,4326,Derived at 11 stations.,"For military purposes. Accuracy 5m, 3m and 5m in X, Y and Z axes.",2413,20.86,27.29,-79.04,-72.68,1,0,9603,-4,154,178,,,,,0
+478,1178,4267,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2414,23.9,24.19,-74.6,-74.37,1,0,9603,1,140,165,,,,,0
+479,1179,4267,4326,Derived at 25 stations.,"For military purposes only. Accuracy 8m, 8m and 6m in X, Y and Z axes.",2384,48.25,60.01,-139.04,-109.98,1,0,9603,-7,162,188,,,,,0
+480,1180,4267,4326,Derived at 25 stations.,"For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",2415,41.67,60.01,-102,-74.35,1,0,9603,-9,157,184,,,,,0
+481,1181,4267,4326,Derived at 37 stations.,"For military purposes only. Accuracy 6m, 6m and 3m in X, Y and Z axes.",2416,43.41,62.62,-79.85,-52.54,1,0,9603,-22,160,190,,,,,0
+482,1182,4267,4326,Derived at 17 stations.,"For military purposes only. Accuracy 5m, 5m and 3m in X, Y and Z axes.",2410,49,83.17,-136.46,-60.72,1,0,9603,4,159,188,,,,,0
+483,1183,4267,4326,Derived at 8 stations.,"For military purposes only. Accuracy 5m, 8m and 3m in X, Y and Z axes.",2417,59.99,69.7,-141.01,-123.91,1,0,9603,-7,139,181,,,,,0
+484,1184,4267,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,2385,8.82,9.45,-80.07,-79.46,1,0,9603,0,125,201,,,,,0
+485,1185,4267,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3235,19.77,23.25,-85.01,-74.07,1,0,9603,-9,152,178,,,,,0
+486,1186,4267,4326,"Derived at 2 stations. Note: NAD27 is not used in Greenland.",For military purposes. Accuracy 25m in each axis.,2386,75.86,79.2,-73.29,-60.98,1,0,9603,11,114,195,,,,,0
+487,1187,4267,4326,Derived at 22 stations.,"For military purposes only. Accuracy 8m, 6m and 6m in X, Y and Z axes.",3278,14.51,32.72,-118.47,-86.68,1,0,9603,-12,130,190,,,,,0
+488,1249,4267,4326,Derived at 6 stations.,"For military purposes only. Accuracy 6m, 8m and 10m in X, Y and Z axes.",2387,51.54,54.34,-178.3,-164.84,1,0,9603,-2,152,149,,,,,0
+489,1250,4267,4326,Derived at 5 stations.,For military purposes. Accuracy 10m in each axis.,2388,51.3,53.07,172.42,179.86,1,0,9603,2,204,105,,,,,0
+490,1530,4267,4326,,Accuracy 3m.,1077,18.83,25.51,-87.01,-73.57,1,0,9603,-4.2,135.4,181.9,,,,,0
+491,15699,4267,4326,"Developed by John E Chance and Associates at 19°44'N, 92°21'W. Geoid height used =-13.34m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3462,17.85,20.89,-94.79,-89.75,1,0,9603,-2,124.7,196,,,,,0
+492,15913,4267,4326,"Developed by John E Chance and Associates at 21°33'N, 92°33'W. Geoid height used =-16.7m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3461,20.87,23.01,-94.33,-88.67,1,0,9603,0,125,196,,,,,0
+493,15852,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3358,23.82,30.25,-87.25,-81.17,1,0,9603,-3,154,177,,,,,0
+494,15853,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3359,25.61,30.23,-95,-87.25,1,0,9603,-7,151,175,,,,,0
+495,15854,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3360,25.97,28.97,-97.22,-95,1,0,9603,-7,151,178,,,,,0
+496,15855,4267,4326,"Developed by John E Chance and Associates at 21°55'N, 97°20'W. Geoid height used =-17m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3361,21.51,22.75,-98.1,-96.89,1,0,9603,-8,125,190,,,,,0
+497,15856,4267,4326,"Developed by EnSoCo Inc. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).",Oil exploration and production. Accuracy 8 metres.,3357,23.82,30.25,-97.22,-81.17,1,0,9603,-7,158,172,,,,,0
+498,7698,4267,4326,"Derived at stations in the provinces of Colón, Panamá, Coclé, Veraguas,
+Herrera, Los Santos y Chiriquí. Standard deviation 0.871m in north and 0.531m in east.",Accuracy 1m.,3290,7.15,9.68,-83.04,-77.19,1,0,9607,-32.3841359,180.4090461,120.8442577,2.1545854,0.1498782,-0.5742915,8.1049164,0
+499,15978,4267,4326,,Accuracy 1m.,1077,18.83,25.51,-87.01,-73.57,1,0,9607,2.478,149.752,197.726,-0.526,-0.498,0.501,0.685,0
+500,1188,4269,4326,Derived at 354 stations.,Accuracy 2m in each axis.,1325,23.81,86.46,-172.54,-47.74,1,0,9603,0,0,0,,,,,1
+501,1251,4269,4326,Derived at 4 stations.,"For military purposes only. Accuracy 5m, 2m and 5m in X, Y and Z axes.",2157,51.3,54.34,172.42,-164.84,1,0,9603,-2,0,4,,,,,0
+502,1252,4269,4326,Derived at 6 stations.,For military purposes only. Accuracy 2m in each axis.,3883,15.56,25.58,-163.74,-151.27,1,0,9603,1,1,-1,,,,,0
+503,1308,4269,4326,"Strictly between NAD83 and ITRF94(1996.0). Superseded by NAD83 to WGS 84 (5) (code 1515).",Historical record only - superseded - see remarks.,1323,24.41,49.38,-124.79,-66.91,1,1,9607,-0.9738,1.9453,0.5486,-0.0275508,-0.010049,-0.011359,0,0
+504,1515,4269,4326,"Strictly between NAD83 and ITRF96(1997.0). Supersedes NAD83 to WGS 84 (4) (code 1308).",Geodesy.,1323,24.41,49.38,-124.79,-66.91,1,1,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0
+505,1189,4270,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,2391,20.12,20.74,58.58,59.01,1,0,9603,-247,-148,369,,,,,0
+506,1190,4270,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3968,24.63,28.57,47.95,50.81,1,0,9603,-243,-192,477,,,,,0
+507,1191,4270,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1243,22.63,26.27,51.5,57.13,1,0,9603,-249,-156,381,,,,,1
+508,1531,4270,4326,Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at platform AK1 to 4 IGS stations in March 1995.,Oil exploration.,2392,25.33,25.54,53.03,53.4,1,0,9603,-245,-153.9,382.8,,,,,0
+509,1536,4270,4326,"Derived by Brown & Root in 1992 for Qatar General Petroleum Corporation North Field development. Adopted by QGPC for all offshore Qatar.",Oil exploration.,2406,24.64,27.05,50.55,53.04,1,0,9603,-250.2,-153.09,391.7,,,,,0
+510,15937,4270,4326,Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at station TC58 to 4 IGS stations in March 1995.,Oil exploration.,3509,24,25.64,51.5,54.85,1,0,9603,-245.8,-152.2,382.9,,,,,0
+511,15938,4270,4326,Derived via WGS 72BE from Transit observations at station TC58 in 1976 by BP for ADMA.,Oil exploration.,3509,24,25.64,51.5,54.85,1,0,9606,-225.4,-158.7,380.8,0,0,0.814,-0.38,0
+512,15871,4270,4326,Derived by concatenation of parameter values published by IGN Paris from Nahrwan 1967 to WGS 72 at the Nahrwan SE Base trig station near Baghdad with DMA WGS 72 to WGS 84 parameter values.,Oil exploration.,3625,29.06,37.39,38.79,48.61,1,1,9603,-242.2,-144.9,370.3,,,,,0
+513,6998,4270,4326,Derived via WGS 72 but provenance uncertain. In ADMA replaces tfm code 15938. In ADCO replaced by tfm code 6999 from October 2013.,Oil exploration and production.,4226,22.63,25.64,51.5,56.03,1,0,9607,-233.4,-160.7,381.5,0,0,-0.554,0.2263,0
+514,6999,4270,4326,"Derived in October 2013 at four control points of the ADCO CRF and evaluated at four others. Estimated horizontal accuracy of 0.14 m at the 95% confidence level.","Oil exploration and production horizontal coordinate transformation. Although a 3D transformation, should not be used for vertical dimension.",4225,22.63,24.95,51.56,56.03,1,0,9607,-253.4392,-148.452,386.5267,-0.15605,-0.43,0.1013,-0.0424,0
+515,7002,4270,4326,,Abu Dhabi Municipality GIS.,4229,24.24,24.64,54.2,54.71,1,0,9607,-246.1633,-152.9047,382.6047,-0.0989,-0.1382,-0.0768,2.1e-06,0
+516,7003,4270,4326,,Abu Dhabi Municipality GIS.,1850,22.76,24.32,51.56,54.01,1,0,9607,-242.8907,-149.0671,384.416,-0.19044,-0.24987,-0.13925,0.0001746,0
+517,7004,4270,4326,,Abu Dhabi Municipality GIS.,4227,22.63,24.95,53.99,56.03,1,0,9607,-246.734,-153.4345,382.1477,0.116617,0.165167,0.091327,1.94e-05,0
+518,15952,4270,4326,"Used by DPC for Al Fateh field. Applying this transformation gives same result as Nahrwan 1967 to WGS 84 (8) (code 15938).",Oil exploration and production.,3530,24.94,25.8,54.06,55.3,1,0,9603,-244.2,-149.8,379.3,,,,,0
+519,15953,4270,4326,Used by Dubai Municipality before 1994.,Municipal operations.,3531,24.85,25.34,54.84,55.55,1,0,9603,-250.7,-157.9,380.4,,,,,0
+520,1192,4271,4326,"CAUTION: IOGP believes that the coordinates used to derive these parameter values include a blunder, leading to an error in the value of tX. If a transformation from DMA is required IOGP recommends use of the 1987 version (EPSG codes 1307 and 1556).",For military purposes only. Accuracy given by DMA 15m in each axis.,1322,11.08,11.41,-60.9,-60.44,1,0,9603,-10,375,165,,,,,1
+521,1307,4271,4326,"DMA does not differentiate between Naparima 1955 (Trinidad) and Naparima 1972 (Tobago). Consequently for Trinidad IOGP has duplicated this transformation as Naparima 1955 to WGS 84 (3) - see code 1556.",For military purposes only. Accuracy given by DMA is 15m in each axis.,1322,11.08,11.41,-60.9,-60.44,1,0,9603,-2,374,172,,,,,0
+522,1151,4272,4326,Derived at 14 stations.,"For military purposes only. Accuracy 5m, 3m and 5m in X, Y and Z axes.",3285,-47.65,-33.89,165.87,179.27,1,0,9603,84,-22,209,,,,,0
+523,1564,4272,4326,"These parameter values are taken from NZGD49 to NZGD2000 (2) (code 1701) and assume that NZGD2000 and WGS 84 are coincident to within the accuracy of the transformation. For improved accuracy use NZGD49 to WGS 84 (4) (code 1670).",Transformation accuracy about 4 metres.,3285,-47.65,-33.89,165.87,179.27,1,0,9607,59.47,-5.04,187.44,-0.47,0.1,-1.024,-4.5993,1
+524,15975,4272,4326,"These parameter values are taken from NZGD49 to NZGD2000 (1) (code 1566) and assume that NZGD2000 and WGS 84 are coincident to within the accuracy of the tfm. For better accuracy use NZGD49 to WGS 84 (2) (code 1564) or NZGD49 to WGS 84 (3) (code 1670).",5m accuracy.,3285,-47.65,-33.89,165.87,179.27,1,0,9603,54.4,-20.1,183.1,,,,,0
+525,1654,4273,4326,"Parameter values from NGO 1948 to ETRS89 (1) (code 1653). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 3 metres.,1352,57.93,71.21,4.68,31.22,1,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21,1
+526,1658,4274,4326,"Parameter values from Datum 73 to ETRS89 (1) (code 1657). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by Datum 73 to WGS 84 (4) (tfm code 1987).",For applications to an accuracy of 2 metres.,1294,36.95,42.16,-9.56,-6.19,1,0,9606,-238.2,85.2,29.9,0.166,0.046,1.248,2.03,0
+527,1945,4274,4326,"Parameter values from Datum 73 to ETRS89 (2) (code 1792). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1294,36.95,42.16,-9.56,-6.19,1,1,9606,-231,102.6,29.8,0.615,-0.198,0.881,1.79,0
+528,1983,4274,4326,,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-223.237,110.193,36.649,,,,,1
+529,1987,4274,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-239.749,88.181,30.488,-0.263,-0.082,-1.211,2.229,0
+530,1193,4275,4326,"These same parameter values are used to transform to ETRS89. See NTF to ETRS89 (1) (code 1651).",For applications to an accuracy of 2 metres.,3694,41.31,51.14,-4.87,9.63,1,0,9603,-168,-60,320,,,,,1
+531,1195,4277,4326,Derived at 38 stations.,"For military purposes only. Accuracy 10m, 10m and 15m in X, Y and Z axes.",1264,49.79,60.94,-8.82,1.92,1,0,9603,375,-111,431,,,,,0
+532,1196,4277,4326,Derived at 24 stations.,"For military purposes only. Accuracy 5m, 5m and 6m in X, Y and Z axes.",2395,49.81,55.85,-6.5,1.84,1,0,9603,371,-112,434,,,,,0
+533,1197,4277,4326,Derived at 25 stations.,"For military purposes only. Accuracy 10m, 10m and 15m in X, Y and Z axes.",2396,49.81,55.85,-6.5,1.84,1,0,9603,371,-111,434,,,,,0
+534,1198,4277,4326,Derived at 13 stations.,For military purposes only. Accuracy 10m in each axis.,2397,54.57,60.9,-8.74,-0.65,1,0,9603,384,-111,425,,,,,0
+535,1199,4277,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,2398,51.28,53.48,-5.34,-2.65,1,0,9603,370,-108,434,,,,,0
+536,1314,4277,4326,"For a more accurate transformation see OSGB 1936 / British National Grid to ETRS89 (2) (code 1039): contact the Ordnance Survey of Great Britain (http://www.gps.gov.uk/gpssurveying.asp) for details.",Oil exploration. Accuracy better than 4m and generally better than 2m.,1264,49.79,60.94,-8.82,1.92,1,0,9606,446.448,-125.157,542.06,0.15,0.247,0.842,-20.489,1
+537,5622,4277,4326,Derived by CGG for 1994 3D seismic survey.,Oil exploration and production.,3893,50.53,50.8,-2.2,-1.68,1,0,9603,370.936,-108.938,435.682,,,,,0
+538,7898,7881,4326,"Parameter values from Tritan St. Helena to SHGD2015 (1) (tfm code 7897). Assumes Tritan St. Helena and SHGD2015 can be considered the same to within the accuracy of the transformation.",For applications requiring an accuracy of better than 1 metre.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-0.077,0.079,0.086,,,,,1
+539,4560,4558,4326,"Approximation at the +/- 1m level assuming that RRAF91 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,0,9603,0,0,0,,,,,1
+540,1074,4281,4326,"Not recognised by Survey of Israel. See Palestine 1923 to WGS 84 (2) (code 8650).","Oil Exploration. Accuracy: 1m to north and 5m to south of east-west line through Beersheba (31°15'N).",2603,29.45,33.28,34.17,35.69,1,0,9606,-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1,1
+541,1200,4282,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1072,-6.91,3.72,8.84,18.65,1,0,9603,-148,51,-291,,,,,1
+542,1801,4282,4326,"Derived in 1994 by CGG/Topnav using DORIS system on various stations along the coastline.","?",2574,-6.91,-3.55,8.84,12.34,1,0,9603,-145,52.7,-291.6,,,,,0
+543,1802,4282,4326,Derived by Geoid for Elf in May 1995 using GPS and IGS data by tying 4 geodetic points to ITRF93 epoch 1995.4.,Used by Elf since May 1995 for all offshore Congo operations.,2574,-6.91,-3.55,8.84,12.34,1,0,9606,-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166,0
+544,1150,4283,4326,,Transformation with 1-metre accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,0,0,0,,,,,1
+545,1254,4284,4326,Accuracy estimate not available.,For military purposes.,1198,39.87,85.2,18.92,-168.97,1,0,9603,28,-130,-95,,,,,0
+546,1267,4284,4326,"Derived through concatenation of Pulkovo 1942 to PZ-90 (1) (tfm code 15844) and PZ-90 to WGS 84 (2) (tfm code 1244. Mandated for use in Russia by GOST R 51794-2001, but this has been superseded by GOST R 51794-2008. Replaced by tfm code 5044.",Accuracy 4 metres.,1198,39.87,85.2,18.92,-168.97,1,0,9607,23.92,-141.27,-80.9,0,-0.35,-0.82,-0.12,1
+547,1287,4284,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1119,45.74,48.58,16.11,22.9,1,1,9603,28,-121,-77,,,,,0
+548,1288,4284,4326,Derived at 11 stations.,"For military purposes only. Accuracy 4m, 2m and 4m in X, Y and Z axes.",1192,49,55.93,14.14,24.15,1,1,9603,23,-124,-82,,,,,0
+549,1289,4284,4326,Derived at 6 stations.,"For military purposes only. Accuracy 3m, 3m and 2m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,1,9603,26,-121,-78,,,,,0
+550,1290,4284,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1139,55.67,58.09,19.06,28.24,1,0,9603,24,-124,-82,,,,,0
+551,1291,4284,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1131,40.59,55.45,46.49,87.35,1,0,9603,15,-130,-84,,,,,0
+552,1292,4284,4326,Derived at 7 stations.,For military purposes. Accuracy 3m in each axis.,1025,39.63,42.67,18.46,21.06,1,1,9603,24,-130,-92,,,,,0
+553,1293,4284,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,1,9603,28,-121,-77,,,,,0
+554,1303,4284,4326,Mean of 13 stations along entire Kazak coastline.,Residuals under 2 m.,2405,41.15,46.97,48.9,53.15,1,0,9606,43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549,0
+555,1334,4284,4326,,"?",3246,57.52,59.75,21.74,28.2,1,0,9607,21.58719,-97.54127,-60.92546,-1.01378,-0.58117,-0.2348,-4.6121,0
+556,1679,4284,4326,"Parameter values taken from Pulkovo 1942 to LKS94(ETRS89) (1) (code 1274) assuming that LKS94(ETRS89) is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 9m level.",1145,53.89,56.45,19.02,26.82,1,0,9607,-40.595,-18.55,-69.339,-2.508,-1.832,2.611,-4.299,0
+557,1807,4284,4326,"Derived via WGS72 values taken from SOCAR Magnavox 1502 manual. Used by AIOC 1995-1997 then replaced by the AIOC97 values (tfm code 1808).
+Do not confuse with AIOC95 vertical datum as used in southern Caspian Sea and at Sangachal terminal by AIOC.",Oil industry operations by AIOC prior to 1997.,1038,37.89,42.59,44.77,51.73,1,0,9606,27,-135,-84.5,0,0,0.554,0.2263,0
+558,1808,4284,4326,"Mean of 3 stations in western Georgia, 4 stations in eastern Georgia and 4 stations in eastern Azerbaijan. Derived for use on AIOC early oil western export pipeline, but adopted for all AIOC work replacing the 1995 AIOC transformation (code 1807).",Oil industry operations.,2593,37.89,43.59,39.99,51.73,1,0,9606,686.1,-123.5,-574.4,8.045,-23.366,10.791,-2.926,0
+559,1809,4284,4326,Parameter values calculated by Elf Exploration and Production based on geodetic survey carried out by Azerbaijan State Committee for Geodesy and Cartography.,Oil industry operations.,2594,38.31,40.33,48.93,50.4,1,0,9606,926.4,-715.9,-186.4,-10.364,-20.78,26.452,-7.224,0
+560,5044,4284,4326,"Derived through concatenation of Pulkovo 1942 to PZ-90.02 to WGS 84. Replaces Pulkovo 1942 to WGS 84 (17) (code 1267).",Accuracy 3 metres.,1198,39.87,85.2,18.92,-168.97,1,0,9607,23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22,0
+561,15865,4284,4326,"Derived via PZ-90 at 30 stations throughout USSR (Former Soviet Union, FSU) through concatenation of Pulkovo 1942 to PZ-90 (1) (tfm code 15844) and PZ-90 to WGS 84 (1) (tfm code 15843).",Accuracy 4.5 metres.,2423,35.14,81.91,19.57,-168.97,1,0,9607,25,-141,-78.5,0,-0.35,-0.736,0,0
+562,6899,4284,4326,Derived at 19 stations.,"For military purposes. Accuracy 2m, 3m and 3m in X, Y and Z axes.",3246,57.52,59.75,21.74,28.2,1,0,9603,22,-126,-85,,,,,0
+563,1561,4285,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,1346,24.55,26.2,50.69,51.68,1,0,9603,-128,-283,22,,,,,0
+564,1562,4285,4326,"Derived by Brown & Root in 1992 for Qatar General Petroleum Corporation.",Oil exploration.,2406,24.64,27.05,50.55,53.04,1,0,9603,-128.16,-282.42,21.93,,,,,1
+565,1563,4285,4326,"Derived by Qatar Centre for GIS. See Qatar 1974 to WGS 84 (2) (code 1562) for transformation used by QGPC for offshore petroleum industry.",Oil exploration.,1346,24.55,26.2,50.69,51.68,1,0,9603,-128.033,-283.697,21.052,,,,,0
+566,1211,4287,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m, 25m and 32m in X, Y and Z axes.",2407,59.75,72,-55,-40,1,1,9603,164,138,-189,,,,,0
+567,15934,4289,4326,"Parameter values from Amersfoort to ETRS89 (3) (tfm code 15739) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (2) (code 1672). Replaced by Amersfoort to WGS 84 (4) (tfm code 4833).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.2369,50.0087,465.658,0.406857,-0.350733,1.87035,4.0812,1
+568,1112,4289,4326,"Replaced by Amersfoort to WGS 84 (2) (code 1672).","?",1275,50.75,53.7,3.2,7.22,1,0,9606,593.16,26.15,478.54,-1.30440,-0.10330,-1.14450,4.0775,0
+569,1672,4289,4326,"Parameter values from Amersfoort to ETRS89 (1) (code 1751) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (1) (code 1112). Replaced by Amersfoort to WGS 84 (3) (code 15934).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.04,49.91,465.84,0.409394,-0.359705,1.86849,4.0772,0
+570,4833,4289,4326,"Parameter values from Amersfoort to ETRS89 (5) (tfm code 4830) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (3) (code 15934).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.4171,50.3319,465.5524,0.398957,-0.343988,1.87740,4.0725,0
+571,1212,4291,4326,Derived at 84 stations.,"For military purposes only. Accuracy 15m, 6m and 9m in X, Y and Z axes.",1341,-56.15,13,-82,-34,1,1,9603,-57,1,-41,,,,,0
+572,1213,4291,4326,Derived at 10 stations.,For military purposes only. Accuracy 5m in each axis.,1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,-62,-1,-37,,,,,0
+573,1214,4291,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1049,-22.91,-9.67,-69.66,-57.52,1,1,9603,-61,2,-48,,,,,0
+574,1215,4291,4326,Derived at 22 stations.,"For military purposes only. Accuracy 3m, 5m and 5m in X, Y and Z axes.",1053,-35.71,7.04,-74.01,-25.28,1,1,9603,-60,-2,-41,,,,,0
+575,1216,4291,4326,Derived at 9 stations.,"For military purposes only. Accuracy 15m, 8m and 11m in X, Y and Z axes.",1066,-59.87,-17.5,-113.21,-65.72,1,1,9603,-75,-1,-44,,,,,0
+576,1217,4291,4326,Derived at 7 stations.,"For military purposes only. Accuracy 6m, 6m and 5m in X, Y and Z axes.",1070,-4.23,15.51,-84.77,-66.87,1,1,9603,-44,6,-36,,,,,0
+577,1218,4291,4326,Derived at 11 stations.,For military purposes. Accuracy 3m in each axis.,1085,-5.01,5,-95.35,-75.21,1,1,9603,-48,3,-44,,,,,0
+578,1219,4291,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2356,-1.41,0.18,-91.72,-89.19,1,1,9603,-47,26,-42,,,,,0
+579,1220,4291,4326,Derived at 5 stations.,"For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",1114,1.18,10.7,-61.39,-55.77,1,1,9603,-53,3,-47,,,,,0
+580,1221,4291,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1188,-27.59,-19.29,-62.65,-54.24,1,1,9603,-61,2,-33,,,,,0
+581,1222,4291,4326,Derived at 6 stations.,For military purposes. Accuracy 5m in each axis.,1189,-21.05,-0.03,-84.68,-68.67,1,1,9603,-58,0,-44,,,,,0
+582,1223,4291,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1235,9.83,12.34,-62.09,-57.28,1,1,9603,-45,12,-33,,,,,0
+583,1224,4291,4326,Derived at 5 stations.,"For military purposes only. Accuracy 3m, 6m and 3m in X, Y and Z axes.",1251,0.64,16.75,-73.38,-58.95,1,1,9603,-45,8,-33,,,,,0
+584,1548,4291,4326,"Derived by Brazilean Institute of Geography and Statistics (IGBE) in 1989. Used by ANP.",Medium and small scale mapping.,1053,-35.71,7.04,-74.01,-25.28,1,1,9603,-66.87,4.37,-38.52,,,,,0
+585,1225,4292,4326,Derived at 5 stations.,For military purposes. Accuracy 1m in each axis.,2355,-52.51,-51.16,-59.98,-57.61,1,0,9603,-355,21,72,,,,,1
+586,1226,4293,4326,"Derived at 3 stations. 
+Beware!  Source CRS uses German legal metres, transformation parameter values are in (International) metres. See tfm code 1271 for example.",For military purposes only. Accuracy 20m in each axis.,1169,-30.64,-16.95,8.24,25.27,1,0,9603,616,97,-251,,,,,1
+587,1271,4293,4326,"Beware!  Source CRS uses GLM, tfm param in m. Example: Schwarzeck ?=19°35'46.952""S ?=20°41'50.649""E h=1185.99m; X=5623409.386 Y=2124618.003 Z=-2125847.632 GLM; X=5623485.84m Y=2124646.89m Z=-2125876.54m; WGS 84 X=5624101.48m Y=2124748.97m Z=-2126132.35m.","?",1169,-30.64,-16.95,8.24,25.27,1,0,9603,615.64,102.08,-255.81,,,,,0
+588,1286,4294,4326,Accuracy estimate not available.,For military purposes.,2354,-4.24,4.37,108.79,119.06,1,1,9603,-403,684,41,,,,,0
+589,1834,4294,4326,Accuracy estimate not available.,For military purposes.,2354,-4.24,4.37,108.79,119.06,1,1,9603,-403,684,41,,,,,0
+590,1835,4294,4326,,Oil exploration.,1360,-4.24,4.29,114.55,119.06,1,1,9603,-387.06,636.53,46.29,,,,,0
+591,1836,4294,4326,,Oil exploration.,2770,-0.07,4.29,116.96,119.06,1,1,9603,-403.4,681.12,46.56,,,,,0
+592,6900,4129,4326,Derived at 3 stations.,For military purposes. Accuracy 10m in each axis.,1329,-26.87,-19.84,31.29,35.65,1,0,9603,-132,-110,-335,,,,,1
+593,1227,4297,4326,Accuracy estimate not available.,For military purposes.,1149,-26.59,-11.69,42.53,51.03,1,0,9603,-189,-242,-91,,,,,1
+594,6873,4297,4326,Derived at 9 points throughout Madagascar. Adopted by OMV.,For applications with an accuracy of 3m.,1149,-26.59,-11.69,42.53,51.03,1,0,9603,-198.383,-240.517,-107.909,,,,,0
+595,1228,4298,4326,Derived at 8 stations.,"For military purposes. Accuracy 10m, 10m and 12m in X, Y and Z axes.",1362,0.85,7.67,109.31,119.61,1,0,9603,-679,669,-48,,,,,1
+596,1592,4298,4326,"Originally used by BSP offshore only, use extended to onshore in 2010.",Oil exploration and production.,1055,4.01,6.31,112.37,115.37,1,0,9603,-678,670,-48,,,,,0
+597,1615,4298,4326,"CARE! Erroneous GPS data was used in the derivation of these parameters. They produce a coordinate difference of 10m horizontally and 50m vertically compared to Timbalai 1948 to WGS 84 (2) (code 1592).",Topographic and engineering survey onshore.,2349,4.01,5.11,114.09,115.37,1,0,9603,-726.282,703.611,-48.999,,,,,0
+598,1852,4298,4326,"Derived by Racal Survey for SSB at 24 coastal stations (including Timbalai fundamental point and 6 other primary triangulation stations) between in Sabah (Kudat southwards) and Sarawak (Sibu northwards).",Oil exploration.,2780,1.56,7.67,109.31,117.31,1,0,9606,-533.4,669.2,-52.5,0,0,4.28,9.4,0
+599,5248,4298,4326,,Oil exploration.,1055,4.01,6.31,112.37,115.37,1,1,9607,-689.5937,623.84046,-65.93566,0.02331,-1.17094,0.80054,5.88536,0
+600,5249,4298,4326,"Parameter values taken from Timbalai 1948 to GDBD2009 (1) (code 5878) assuming that GDBD2009 is equivalent to WGS 84 within the accuracy of the transformation.",Oil exploration.,1055,4.01,6.31,112.37,115.37,1,0,9607,-689.5937,623.84046,-65.93566,0.02331,-1.17094,0.80054,5.88536,0
+601,6902,4298,4326,Derived at 9 stations.,"For military purposes. Accuracy 1m, 6m and 2m in X, Y and Z axes.",2349,4.01,5.11,114.09,115.37,1,0,9603,-679,667,-49,,,,,0
+602,1229,4299,4326,Derived at 7 stations.,For military purposes only. Accuracy 3m in each axis.,1305,51.39,55.43,-10.56,-5.34,1,1,9603,506,-122,611,,,,,0
+603,1641,4299,4326,"Parameter values from TM75 to ETRS89 (2) (code 1953). Assumes each pair of (i) TM65 and TM75, and (ii) ETRS89 and WGS 84, can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1305,51.39,55.43,-10.56,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1
+604,1954,4300,4326,"Parameter values taken from TM65 to ETRS89 (2) (code 1953). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1305,51.39,55.43,-10.56,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1
+605,1956,4300,4326,"Derived at 7 stations. TM75 is based on the geodetic datum of 1965 which should not be confused with the mapping adjustment of 1965 (TM65).",For military purposes only. Accuracy 3m in each axis.,1305,51.39,55.43,-10.56,-5.34,1,0,9603,506,-122,611,,,,,0
+606,1230,4301,4326,Derived at 31 stations.,"For military purposes only. Accuracy 20m, 5m and 20m in X, Y and Z axes.",2409,20.37,45.54,122.83,145.87,1,0,9603,-148,507,685,,,,,0
+607,1231,4301,4326,Derived at 16 stations.,"For military purposes only. Accuracy 8m, 5m and 8m in X, Y and Z axes.",3995,30.18,45.54,128.31,145.87,1,0,9603,-148,507,685,,,,,0
+608,1232,4301,4326,"Derived at 29 stations. Replaced by Tokyo to WGS 84 (5) (code 1305).","For military purposes only. Accuracy 8m, 5m and 8m in X, Y and Z axes.",3266,33.14,38.64,124.53,131.01,1,0,9603,-146,507,687,,,,,0
+609,1233,4301,4326,Derived at 3 stations.,"For military purposes only. Accuracy 20m, 5m and 20m in X, Y and Z axes.",2408,23.98,26.91,122.83,131.38,1,0,9603,-158,507,676,,,,,0
+610,1305,4301,4326,"Derived at 29 stations. Replaces Tokyo to WGS 84 (3) (code 1232).",For military purposes. Accuracy 2m in each axis.,3266,33.14,38.64,124.53,131.01,1,0,9603,-147,506,687,,,,,0
+611,15484,4301,4326,"Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.","Surveying, mapping and civil engineering purposes. Accuracy on main islands 9m.",3957,20.37,45.54,122.83,154.05,1,0,9603,-146.414,507.337,680.507,,,,,1
+612,1296,4302,4326,Derived in 1989 by ONI for Amoco.,Oil exploration.,1339,9.83,11.51,-62.09,-60,1,0,9603,-61.702,284.488,472.052,,,,,1
+613,10085,4302,4326,"Parameter values provided to EOG by Trinidad Ministry of Energy and Energy Industries. Used by EOG offshore Trinidad (including Pelican, Kiskadee and Ibis fields) since 1996.",Oil exploration.,1339,9.83,11.51,-62.09,-60,1,0,9603,-61,285.2,471.6,,,,,0
+614,1932,4644,4326,,"Accuracy better than +/- 1 metre.",2823,-22.37,-22.19,166.35,166.54,1,1,9606,-166.207,-154.777,254.831,-37.5444,7.7011,-10.2025,-30.8598,0
+615,15904,4644,4326,"Parameter values taken from NEA74 Noumea to RGNC91-93 (1) ( code 15886) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 1 metre.,2823,-22.37,-22.19,166.35,166.54,1,0,9603,-10.18,-350.43,291.37,,,,,1
+616,1294,4304,4326,Accuracy estimate not available.,For military purposes.,1365,31.99,37.14,-2.95,9.09,1,0,9603,-73,-247,227,,,,,1
+617,15815,4728,4326,Determined at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3873,27.58,29.3,-18.22,-13.37,1,0,9603,-307,-92,127,,,,,1
+618,1253,4307,4326,Derived at 3 stations.,For military purposes only. Accuracy 25m in each axis.,3213,18.97,37.14,-8.67,11.99,1,0,9603,-186,-93,310,,,,,0
+619,1255,4307,4326,"CAUTION: Source CRS described by DMA as from Voirol 1960. OGP believes that the data used in the derivation of these parameters contains a blunder. We recommend using transformation North Sahara 1959 to WGS84 (1) (code 1253). Derived at 2 stations.",For military purposes only. Accuracy 25m in each axis.,1365,31.99,37.14,-2.95,9.09,1,0,9603,-123,-206,219,,,,,0
+620,1815,4307,4326,Used by BP in District 3 and In Salah Gas.,Oil industry operations.,2598,25,32,1,3.3,1,0,9606,-152.9,43.8,358.3,2.714,1.386,-2.788,-6.743,0
+621,1816,4307,4326,"Derived at astro station central to concession. Significant and varying differences (>100m) at 4 neighbouring astro stations.",Oil industry operations.,2599,27.5,28.3,8.83,9.92,1,0,9603,-95.7,10.2,158.9,,,,,0
+622,1817,4307,4326,Derived at astro station Guerrara.,Oil industry operations.,2600,31.75,32.42,7.16,8,1,0,9603,-165.914,-70.607,305.009,,,,,0
+623,5630,4307,4326,"Derived at 1 station (L38).",Used by Total in Ahnet licence area.,3917,26.06,27.51,1.26,2.92,1,0,9603,-168.52,-72.05,304.3,,,,,0
+624,5660,4307,4326,Derived in 2006 at 45 points in north and central Algeria.,Accuracy at 75 common points better than 1m..,1026,18.97,38.8,-8.67,11.99,1,0,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547,1
+625,7442,4307,4326,"Derived at 1 astro station central to concession. Significant and varying differences (>100m) known to exist in neighbouring astro stations.",Oil industry operations.,4382,27.4,28.1,7.66,8.27,1,0,9603,-181.7,64.7,247.2,,,,,0
+626,15874,4307,4326,"Derived at 11 stations throughout blocks 317b, 319b, 321b and 322b. Network based on station P4 (horizontal) and benchmark RN51 (vertical) using EGM96 geoid height. Used by Statoil in Hassi Mouina.",Oil exploration and production. Accuracy 5m.,3402,29.25,31,0,1.25,1,0,9603,-169.559,-72.34,303.102,,,,,0
+627,1234,4309,4326,Accuracy estimate not available.,For military purposes.,3326,-35,-30.09,-58.49,-53.09,1,0,9603,-155,171,37,,,,,1
+628,5386,4309,4326,Derived at 11 stations during 1998 densification of Uruguay control based on SIRGAS 1995.,"Accuracy at stations used for derivation: 0.13 to 1.17m.",3326,-35,-30.09,-58.49,-53.09,1,0,9606,-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365,0
+629,6903,4310,4326,Derived at 7 stations.,For military purposes only. Accuracy 3m in each axis.,1207,10.64,16.7,-20.22,-11.36,1,0,9603,-30,190,89,,,,,1
+630,1235,4311,4326,Derived at 5 stations.,"For military purposes. Accuracy 5m, 5m and 8m in X, Y and Z axes.",1222,1.83,9.35,-58.08,-52.66,1,0,9603,-265,120,-358,,,,,1
+631,1194,4312,4326,May be taken as approximate transformation MGI to ETRS89 assuming ETRS89 is equivalent to WGS 84 within the accuracy of the transformation - see tfm code 1024. Information source gives scale as -2.388739 ppm.,Provincial GIS and other applications to an accuracy of 0.5 metres.,1543,46.64,47.84,13.58,16.17,1,0,9607,601.705,84.263,485.227,-4.7354,-1.3145,-5.393,-2.3887,0
+632,1306,4312,4326,Accuracy estimate not available.,For military purposes only.,2370,40.85,46.88,13.38,23.04,1,1,9603,682,-203,480,,,,,0
+633,1471,4312,4326,,For applications to an accuracy of 1.5 metres.,1037,46.4,49.02,9.53,17.17,1,1,9606,-577.326,-90.129,-463.919,-5.136599,-1.474,-5.297044,-2.4232,0
+634,1618,4312,4326,"Same transformation parameters used for MGI to ETRS89 (1) (code 1619).",For applications to an accuracy of 1.5 metres.,1037,46.4,49.02,9.53,17.17,1,0,9606,577.326,90.129,463.919,5.137,1.474,5.297,2.4232,1
+635,1621,4312,4326,"Parameter values from MGI to ETRS89 (2) (code 1620). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1076,41.62,46.54,13,19.43,1,1,9606,551.7,162.9,467.9,6.04,1.96,-11.38,-4.82,0
+636,1786,4312,4326,"Parameter values from MGI to ETRS89 (3) (code 1785). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,1,9606,426.9,142.6,460.1,4.91,4.49,-12.42,17.1,0
+637,1794,4312,4326,"For more accurate transformation see MGI to WGS 84 (7) (code 1795).",Oil industry,3536,41.79,43.56,18.45,20.38,1,1,9603,695.5,-216.6,491.1,,,,,0
+638,15982,4312,4326,"Parameter values from MGI to Slovenia 1996 (1) (code 15981). Assumes Slovenia 1996 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,1,9607,409.545,72.164,486.872,-3.085957,-5.46911,11.020289,17.919665,0
+639,1609,4313,4326,"Scale difference is given by information source as 0.999999. Given in this record in ppm to assist application usage. Very similar parameter values (to slightly less precision) used for BD72 to ETRS89: see code 1652.",For applications to an accuracy of 1 metre.,1347,49.5,51.51,2.5,6.4,1,0,9607,-99.059,53.322,-112.486,-0.419,0.83,-1.885,-1,0
+640,1610,4313,4326,,For applications to an accuracy of 5 metres.,1347,49.5,51.51,2.5,6.4,1,0,9603,-125.8,79.9,-100.5,,,,,0
+641,15929,4313,4326,"Parameter values from BD72 to ETRS89 (2) (code 15928). Scale difference is given by information source as -1.0000012747. Given in this record in ppm to assist application usage.",For applications to an accuracy of 0.5 metre.,1347,49.5,51.51,2.5,6.4,1,0,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,-1.2747,1
+642,15749,4313,4326,"Parameter values from BD72 to ETRS89 (2) (code 15748). Scale difference is given by information source as 1.0000012747. Given in this record in ppm to assist application usage.",For applications to an accuracy of 0.5 metre.,1044,49.5,51.88,2.23,6.4,1,1,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,1.2747,0
+643,1673,4314,4326,"Parameter values from DHDN to ETRS89 (1) (code 1309) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaced by DHDN to WGS 84 (2) (tfm code 1777).",For applications with an accuracy at 5 m level.,2326,47.27,55.09,5.87,13.84,1,0,9607,582,105,414,-1.04,-0.35,3.08,8.3,0
+644,1777,4314,4326,"Parameter values from DHDN to ETRS89 (2) (code 1776) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces DHDN to WGS 84 (1) (tfm code 1673).",For applications with an accuracy at 3 m level,2326,47.27,55.09,5.87,13.84,1,0,9606,598.1,73.7,418.2,0.202,0.045,-2.455,6.7,1
+645,15869,4314,4326,"Parameter values taken from RD/83 to ETRS89 (1) (tfm code 15868) assuming that within the accuracy of the transformation ETRS89 is equivalent to WGS 84 and RD/83 is equivalent to DHDN.",For applications with an accuracy at 2m level,1343,50.2,54.74,9.92,15.04,1,0,9606,612.4,77,440.2,-0.054,0.057,-2.797,2.55,0
+646,1517,4315,4326,,"?",3257,7.19,12.68,-15.13,-7.65,1,0,9603,-23,259,-9,,,,,1
+647,1789,4316,4326,"Parameter values taken from Pulkovo 1942 to WGS 84 (9) (code 1293) assuming that","?",1197,43.44,48.27,20.26,31.41,1,1,9603,103.25,-100.4,-307.19,,,,,0
+648,1995,4316,4326,,Oil exploration,3295,43.62,48.27,20.26,29.74,1,0,9603,103.25,-100.4,-307.19,,,,,1
+649,1097,4317,4326,"Parameter values taken from Pulkovo 1942 to WGS 84 (9) (code 1293) assuming that Pulkovo 1942 in Romania is equivalent to Dealul Piscului 1970.","Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,1,9603,28,-121,-77,,,,,0
+650,1996,4317,4326,,Oil exploration,1197,43.44,48.27,20.26,31.41,1,1,9603,44.107,-116.147,-54.648,,,,,0
+651,1060,4318,4326,,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-3.2,-5.7,2.8,,,,,1
+652,1061,4319,4326,,For applications requiring an accuracy of better than 1 metre.,1310,29.17,29.45,47.78,48.16,1,0,9603,-20.8,11.3,2.4,,,,,1
+653,1062,4319,4326,,For applications requiring an accuracy of better than 1 metre.,1310,29.17,29.45,47.78,48.16,1,0,9607,226.702,-193.337,-35.371,2.229,4.391,-9.238,0.9798,0
+654,6910,6881,4326,Derivation not given.,For military purposes. Accuracy not specified.,1340,12.54,19,43.37,53.14,1,0,9603,-24,-203,268,,,,,1
+655,1237,4322,4326,,For scientific purposes.,1262,-90,90,-180,180,1,0,9606,0,0,4.5,0,0,0.554,0.2263,1
+656,1238,4322,4326,,For scientific purposes.,1262,-90,90,-180,180,1,0,9606,0,0,4.5,0,0,0.554,0.219,0
+657,6912,6883,4326,Derived at 6 stations.,"For military purposes. Accuracy 5m, 17m and 38m in X, Y and Z axes.",4220,3.14,3.82,8.37,9.02,1,0,9603,-235,-110,393,,,,,1
+658,1240,4324,4326,,Geodesy.,2346,-90,90,-180,180,1,0,9606,0,0,1.9,0,0,0.814,-0.38,1
+659,5521,4646,4326,,For military purposes. Accuracy unknown.,2807,-11.99,-11.31,43.16,43.55,1,0,9603,-963,510,-359,,,,,1
+660,15822,4732,4326,Derived at 10 satellite stations.,"For military and topographic mapping. Accuracy +/-3 m in each axis.",3191,8.66,19.38,162.27,167.82,1,0,9603,102,52,-38,,,,,1
+661,5327,5324,4326,For many purposes ISN2004 can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that ISN2004 is equivalent to WGS 84.",1120,59.96,69.59,-30.87,-5.55,1,0,9603,0,0,0,,,,,1
+662,3817,3819,4326,Horizontal coordinates of 66 points of the National Geodetic Network were used to compute this transformation.,GIS and topographic survey.,1119,45.74,48.58,16.11,22.9,1,0,9607,595.48,121.69,515.35,-4.115,2.9383,-0.853,-3.408,1
+663,6914,6892,4326,"Derived by UK DOS at 10 stations in 1998, RMS ±0.314m. Also published by NGA in Standard 0036 v1.0.0 of 2014-07-08 and in GeoTrans v3.4 software with parameter values rounded to integer.",Topographic mapping.,4183,-4.86,-3.66,55.15,56.01,1,0,9603,-43.685,-179.785,-267.721,,,,,1
+664,6926,6892,4326,"Derived by UKHO at 13 stations in 1999, RMS ±0.271m.",Hydrographic survey and charting.,4183,-4.86,-3.66,55.15,56.01,1,0,9606,-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686,0
+665,1920,4645,4326,,"Accuracy +/- 1 metre.",1174,-26.45,-14.83,156.25,174.28,1,1,9603,0,0,0,,,,,0
+666,6913,6894,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3250,13.05,13.83,-16.88,-13.79,1,0,9603,-63,176,185,,,,,1
+667,15823,4733,4326,Derived at 2 satellite stations.,"For military and topographic mapping. Accuracy +/-25m in each axis.",3190,19.22,19.38,166.55,166.72,1,0,9603,276,-57,149,,,,,1
+668,3830,3824,4326,"Approximation at the +/- 1m level assuming that TWD97 is equivalent to WGS 84.","Accuracy +/- 1m.",1228,17.36,26.96,114.32,123.61,1,0,9603,0,0,0,,,,,1
+669,7443,7373,4326,"Approximation at the +/- 1m level assuming that ONG14 is equivalent to WGS 84. See transformation code 7377 for authoritative values.",Geodesy.,1183,14.33,26.74,51.99,63.38,1,0,9603,0,0,0,,,,,1
+670,5376,5365,4326,,Accuracy 1m.,1074,2.15,11.77,-90.45,-81.43,1,0,9603,0,0,0,,,,,1
+671,15808,4724,4326,Derived at 2 satellite stations.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3189,-7.49,-7.18,72.3,72.55,1,0,9603,208,-435,-229,,,,,1
+672,5377,5371,4326,,Accuracy 1m.,1186,5,12.51,-84.32,-77.04,1,0,9603,0,0,0,,,,,1
+673,5378,5373,4326,,Accuracy 1m.,1189,-21.05,-0.03,-84.68,-68.67,1,0,9603,0,0,0,,,,,1
+674,15812,4736,4326,,"Scientific mapping. Accuracy +/- 20m in each axis.",3204,-63.08,-62.82,-60.89,-60.35,1,0,9603,260,12,-147,,,,,1
+675,15821,4731,4326,Derived at 1 satellite station.,"For military and topographic mapping. Accuracy +/-25m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,1,9603,51,391,-36,,,,,0
+676,15795,4707,4326,Derived at 1 satellite station. Same transformation parameter values related to same datum area given in original 1987 DMA TR8350.2 edition for Sorol Atoll.,For military purposes only. Accuracy 25m in each axis.,3181,23.69,23.93,-166.36,-166.03,1,0,9603,114,-116,-333,,,,,1
+677,5384,5381,4326,,Accuracy 1m.,1247,-37.77,-30.09,-58.49,-50.01,1,0,9603,0,0,0,,,,,1
+678,15813,4722,4326,Determined from 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3529,-54.95,-53.93,-38.08,-35.74,1,0,9603,-794,119,-298,,,,,1
+679,5227,5228,4326,"Parameter values from S-JTSK/05 to ETRS89 (1) (code 5226). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces tfm code 1622.",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378,1
+680,15771,4692,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Maupiti 83 to RGPF (1) (tfm code 15759).","Accuracy +/- 1 metre.",3126,-16.57,-16.34,-152.39,-152.14,1,0,9603,217.037,86.959,23.956,,,,,1
+681,15973,4055,4326,"Executes change of sphere/ellipsoid",Web mapping. Accuracy may be no better than 800 metres.,1262,-90,90,-180,180,1,1,9603,0,0,0,,,,,0
+682,5395,5393,4326,,Accuracy 1m.,1087,9.97,14.44,-91.43,-87.65,1,0,9603,0,0,0,,,,,1
+683,15816,4734,4326,Determined at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3184,-40.42,-37,-12.76,-9.8,1,0,9603,-632,438,-609,,,,,1
+684,15842,4739,4326,"Derived at 2 satellite stations. Care: does not use Hong Kong 1963 (code 4838) as the source CRS.","Military mapping. Accuracy +/- 1m.",1118,22.13,22.58,113.76,114.51,1,0,9603,-156,-271,-189,,,,,1
+685,5261,5252,4326,,"Approximation at the +/- 1m level as both TUREF and WGS 84 are realizations of ITRS.",1237,34.42,43.45,25.62,44.83,1,0,9603,0,0,0,,,,,1
+686,1925,4639,4326,,"Accuracy +/- 10 metres.",2815,-13.41,-13.16,-176.25,-176.07,1,1,9603,252,-132,-125,,,,,0
+687,15847,4639,4326,"Replaces information from 2001 (tfm code 1925).","Accuracy +/- 10 metres.",2815,-13.41,-13.16,-176.25,-176.07,1,0,9603,253,-132,-127,,,,,1
+688,15801,4714,4326,Derived at 3 satellite stations.,"Military and topographic mapping; Accuracy +/- 20 m in each axis",3193,-20.31,-17.37,168.09,169.95,1,0,9603,-127,-769,472,,,,,1
+689,7892,7886,4326,"SHGD2015 is realized by ITRF2008 at epoch 2015.0 and can be considered coincident with WGS 84 at epoch 2015.0 Accuracy 3 cm at 1/1/2015 then degrades by 3 cm/yr from 1/1/2015 depending upon epoch of WGS 84 due to motion of the Nubian Plate",For military purposes only. Accuracy 25m in each axis.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,0,0,0,,,,,1
+690,15802,4715,4326,No accuracy estimate available.,Military and scientific mapping.,3205,-77.94,-77.17,165.73,167.43,1,0,9603,-104,-129,239,,,,,1
+691,1994,4657,4326,,Low accuracy applications.,3262,63.34,66.59,-24.66,-13.38,1,0,9603,-28,199,5,,,,,1
+692,5351,5340,4326,,Approximation at the sub meter level.,1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1
+693,5078,4743,4326,"Parameter values from Karbala 1979 to IGRS (1) (tfm code 5077) assuming that IGRS is equivalent to WGS 84 within the accuracy of the transformation. Replaces Karbala 1979 to WGS 84 (1) (tfm code 15872).",Accuracy 1m.,3625,29.06,37.39,38.79,48.61,1,0,9603,70.995,-335.916,262.898,,,,,1
+694,15872,4743,4326,"Derived from shifts in UTM rectangular coordinates for one point in Basra area provided by Iraq National Oil Exploration Company. Replaced by Karbala 1979 to WGS 84 (2) (tfm code 5078).",Oil exploration.,3397,29.87,31.09,46.46,48.61,1,0,9603,84.1,-320.1,218.7,,,,,0
+695,1951,4658,4326,"Derived at 6 stations. Replaced by Hjorsey 1955 to WGS 84 (2) (code 6909).","Accuracy 3m, 3m and 5m in X, Y and Z axes.",3262,63.34,66.59,-24.66,-13.38,1,0,9603,-73,46,-86,,,,,0
+696,6909,4658,4326,"Derived at 16 stations. Replaces Hjorsey 1955 to WGS 84 (1) (code 1951).","Accuracy 3m, 3m and 6m in X, Y and Z axes.",3262,63.34,66.59,-24.66,-13.38,1,0,9603,-73,47,-83,,,,,1
+697,6373,6365,4326,,Accuracy 1m.,1160,12.1,32.72,-122.19,-84.64,1,0,9603,0,0,0,,,,,1
+698,3894,3889,4326,"Approximation at the +/- 1m level assuming that IGRS is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,1124,29.06,37.39,38.79,48.75,1,0,9603,0,0,0,,,,,1
+699,1952,4659,4326,For many purposes ISN93 can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that ISN93 is equivalent to WGS 84.",1120,59.96,69.59,-30.87,-5.55,1,0,9603,0,0,0,,,,,1
+700,1957,4660,4326,Derived at 3 stations. Residuals under 1m.,For applications to an accuracy of 1 metre.,2869,70.75,71.24,-9.17,-7.87,1,0,9606,982.6087,552.753,-540.873,6.6816266,-31.6114924,-19.84816,16.805,1
+701,1958,4661,4326,,LKS92 is a national realization of ETRS89 and coincident to WGS84 within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1139,55.67,58.09,19.06,28.24,1,0,9603,0,0,0,,,,,1
+702,15849,4213,4326,"Used by Elf / CGG between December 1991 and March 1992. Probably derived from results of concatenated tfm Beduaram to WGS 84 (1) (code 8634).",Oil exploration.,2771,12.8,16.7,7.81,14.9,1,0,9603,-106,-87,188,,,,,1
+703,15803,4716,4326,Derived at 4 satellite stations.,"Military and topographic mapping. Accuracy +/- 15 m in each axis.",3196,-4.76,-2.68,-174.6,-170.66,1,0,9603,298,-304,-375,,,,,1
+704,3915,3906,4326,"Parameter values from MGI 1901 to ETRS89 (3) (code 3914). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,0,9606,426.9,142.6,460.1,4.91,4.49,-12.42,17.1,0
+705,3917,3906,4326,"Parameter values from MGI 1901 to Slovenia 1996 (1) (code 3916). Assumes Slovenia 1996 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,0,9607,409.545,72.164,486.872,-3.085957,-5.46911,11.020289,17.919665,0
+706,3962,3906,4326,Accuracy estimate not available from information source but established empirically by OGP.,For military purposes only.,2370,40.85,46.88,13.38,23.04,1,0,9603,682,-203,480,,,,,1
+707,3964,3906,4326,"Parameter values from MGI 1901 to ETRS89 (2) (code 3963). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3234,42.34,46.54,13.43,19.43,1,0,9606,551.7,162.9,467.9,6.04,1.96,-11.38,-4.82,0
+708,3965,3906,4326,,Oil industry,3536,41.79,43.56,18.45,20.38,1,0,9603,695.5,-216.6,491.1,,,,,0
+709,6206,3906,4326,Derived at 13 stations.,"1m accuracy. Residuals generally less than +/- 1m horizontally and vertically.",1148,40.85,42.36,20.45,23.04,1,0,9607,521.748,229.489,590.921,-4.029,-4.488,15.521,-9.78,0
+710,7676,3906,4326,"Parameter values from MGI 1901 to ETRS89 (6) (code 7675). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications with an accuracy of 1m.,3534,41.85,46.19,18.81,23.01,1,0,9607,577.88891,165.22205,391.18289,-4.9145,0.94729,13.05098,7.78664,0
+711,1962,4662,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15903.,"Accuracy +/- 10 metres.",2822,-22.45,-20.03,163.92,167.09,1,0,9603,-13,-348,292,,,,,0
+712,1963,4662,4326,Withdrawn by information source and replaced by improved information - see tfm code 15903.,"Accuracy better than +/- 1 metre.",2822,-22.45,-20.03,163.92,167.09,1,0,9606,97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259,0
+713,15903,4662,4326,"Parameter values taken from IGN72 Grande Terre to RGNC91-93 (1) ( code 15882) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.","Accuracy +/- 2 metres.",2822,-22.45,-20.03,163.92,167.09,1,0,9603,-11.64,-348.6,291.98,,,,,1
+714,15878,4748,4326,"Parameter values taken from Viti Levu 1912 to WGS 84 (1) (tfm code 15897). Approximation at the +/- 50m level assuming that CRS 4748 is equivalent to CRS 4752 within the transformation accuracy. Source CRSs 4748 and 4752 are independent but connected.","For applications with an accuracy of +/-50m.",3401,-17.07,-16.1,178.42,-179.77,1,0,9603,51,391,-36,,,,,1
+715,1966,4663,4326,Derived at Forte de Sao Tiago.,For low resolution applications.,2870,32.58,33.15,-17.31,-16.23,1,0,9603,-502.862,-247.438,312.724,,,,,1
+716,1967,4663,4326,,For medium resolution applications.,2870,32.58,33.15,-17.31,-16.23,1,0,9607,-210.502,-66.902,-48.476,-2.094,15.067,5.817,0.485,0
+717,6911,6882,4326,Derivation not given.,For military purposes. Accuracy not specified.,3269,33.06,34.65,35.04,36.63,1,0,9603,-183,-15,273,,,,,1
+718,15880,4749,4326,,"Accuracy +/- 1 metre.",1174,-26.45,-14.83,156.25,174.28,1,0,9603,0,0,0,,,,,1
+719,1968,4664,4326,Calculated in 2001.,For low resolution applications.,2871,37.65,37.96,-25.92,-25.08,1,0,9603,-204.633,140.216,55.199,,,,,0
+720,1969,4664,4326,Calculated in 2001.,For medium resolution applications.,2871,37.65,37.96,-25.92,-25.08,1,0,9607,-211.939,137.626,58.3,0.089,-0.251,-0.079,0.384,0
+721,1970,4664,4326,Mean for all islands in group.,For low resolution applications.,1345,36.87,37.96,-25.92,-24.62,1,0,9603,-204.619,140.176,55.226,,,,,1
+722,1971,4664,4326,Mean for all islands in group.,For medium resolution applications.,1345,36.87,37.96,-25.92,-24.62,1,0,9607,-208.719,129.685,52.092,0.195,0.014,-0.327,0.198,0
+723,15881,4750,4326,"Parameter values taken from ST87 Ouvea to RGNC91-93 (1) ( code 15885) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.","Accuracy better than +/- 1 metre.",2813,-20.77,-20.34,166.44,166.71,1,0,9603,-56.263,16.136,-22.856,,,,,1
+724,1972,4665,4326,,For low resolution applications.,2872,38.57,38.86,-27.44,-26.97,1,0,9603,-106.301,166.27,-37.916,,,,,0
+725,1973,4665,4326,,For medium resolution applications.,2872,38.57,38.86,-27.44,-26.97,1,0,9607,-105.854,165.589,-38.312,0.003,0.026,-0.024,-0.048,0
+726,1974,4665,4326,,For low resolution applications.,2873,38.46,38.7,-28.9,-28.54,1,0,9603,-106.248,166.244,-37.845,,,,,0
+727,1975,4665,4326,,For medium resolution applications.,2873,38.46,38.7,-28.9,-28.54,1,0,9607,-104,162.924,-38.882,0.075,0.071,-0.051,-0.338,0
+728,1976,4665,4326,,For low resolution applications.,2874,38.32,38.61,-28.61,-27.98,1,0,9603,-106.044,166.655,-37.876,,,,,0
+729,1977,4665,4326,,For medium resolution applications.,2874,38.32,38.61,-28.61,-27.98,1,0,9607,-95.323,166.098,-69.942,0.215,1.031,-0.047,1.922,0
+730,1978,4665,4326,,For low resolution applications.,2875,38.48,38.8,-28.37,-27.71,1,0,9603,-106.253,166.239,-37.854,,,,,0
+731,1979,4665,4326,,For medium resolution applications.,2875,38.48,38.8,-28.37,-27.71,1,0,9607,-100.306,161.246,-48.761,0.192,0.385,-0.076,0.131,0
+732,1980,4665,4326,Mean for all islands in group.,For low resolution applications.,1301,38.32,39.14,-28.9,-26.97,1,0,9603,-106.226,166.366,-37.893,,,,,1
+733,1981,4665,4326,Mean for all islands in group.,For medium resolution applications.,1301,38.32,39.14,-28.9,-26.97,1,0,9607,-103.088,162.481,-28.276,-0.167,-0.082,-0.168,-1.504,0
+734,1986,4666,4326,May be taken as a transformation from Lisbon 1890 to ETRS89 - see tfm code 5039.,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,508.088,-191.042,565.223,,,,,1
+735,1990,4666,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,631.392,-66.551,481.442,-1.09,4.445,4.487,-4.43,0
+736,15804,4717,4326,Derived at 19 satellite stations.,"US space and military operations. Accuracy +/- 3 m in each axis.",3206,20.86,30.83,-82.33,-72.68,1,0,9603,-2,151,181,,,,,1
+737,5267,5264,4326,DRUKREF 03 and WGS 84 are both realisations of ITRS.,For applications to an accuracy of 1 metre.,1048,26.7,28.33,88.74,92.13,1,0,9603,0,0,0,,,,,1
+738,1993,4667,4326,For all practical purposes this transformation is exact.,Boundary demarcation.,2876,29.06,30.32,46.36,48.61,1,0,9603,0,0,0,,,,,1
+739,15897,4752,4326,"Derived at 1 satellite station. Replaced by Viti Levu 1912 to WGS 84 (2) (code 6895).","For military and topographic mapping. Accuracy +/-25m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,0,9603,51,391,-36,,,,,0
+740,6895,4752,4326,"Derived at 9 stations. Replaces Viti Levu 1912 to WGS 84 (1) (code 15897).","For military and topographic mapping. Accuracy +/-3m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,0,9603,98,390,-22,,,,,1
+741,5470,5451,4326,"Parameter values taken from Ocotepeque to CR05 (1) (tfm code 6890) assuming that CR05 is equivalent to WGS 84 within the accuracy of the transformation.",Topographic mapping.,3232,7.98,11.22,-85.97,-82.53,1,0,9603,213.11,9.37,-74.95,,,,,0
+742,5473,5451,4326,"Rotations in original source given in radians are equivalent to Rx = 2.35"", Ry = -0.06"", Rz = 6.39"".",Topographic mapping.,3232,7.98,11.22,-85.97,-82.53,1,1,9607,213.116,9.358,-74.946,2.351,-0.06147,6.39,-5.22,0
+743,5474,5451,4326,,Topographic mapping.,3876,7.98,17.83,-92.29,-82.53,1,1,9603,205.435,-29.099,292.202,,,,,0
+744,6891,5451,4326,"Concatenation (via NAD27) of transformations 6888 and 1171. Accuracy not given, but accuracy of constituent transformations given as 9m and 10m respectively.",For military purposes.,3876,7.98,17.83,-92.29,-82.53,1,0,9603,205,96,-98,,,,,1
+745,15752,4668,4326,Derived at 22 stations.,For military purposes. Accuracy 3m in each axis.,1297,34.88,71.21,-10.56,31.59,1,0,9603,-86,-98,-119,,,,,1
+746,15810,4735,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3192,5.21,5.43,162.85,163.1,1,0,9603,647,1777,-1124,,,,,1
+747,15908,4754,4326,Derived at 5 stations throughout Libya used to define LGD2006 in May 2006.,For applications to an accuracy of 0.1 metre.,1143,19.5,35.23,9.31,26.21,1,0,9603,-208.4058,-109.8777,-2.5764,,,,,1
+748,4477,4463,4326,"Approximation at the +/- 1m level assuming that RGSPM06 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1220,43.41,47.37,-57.1,-55.9,1,0,9603,0,0,0,,,,,1
+749,5501,5489,4326,"Approximation at the +/- 1m level assuming that RGAF09 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,0,9603,0,0,0,,,,,1
+750,15912,4755,4326,"Approximation at the +/- 1m level assuming that DGN95 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1 metre.,1122,-13.95,7.79,92.01,141.46,1,0,9603,0,0,0,,,,,1
+751,1555,4158,4326,Derived in 1989 by ONI for Amoco.,Oil exploration.,3143,9.99,10.9,-61.98,-60.85,1,0,9603,-0.465,372.095,171.736,,,,,1
+752,1556,4158,4326,"DMA does not differentiate between Naparima 1955 (Trinidad) and Naparima 1972 (Tobago). Consequently for Trinidad IOGP has duplicated this transformation as Naparima 1972 to WGS 84 (3) - see code 1307.",For military purposes only. Accuracy given by DMA is 15m in each axis.,3143,9.99,10.9,-61.98,-60.85,1,0,9603,-2,374,172,,,,,0
+753,4476,4470,4326,"Approximation at the +/- 1m level assuming that RGM04 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1159,-14.49,-11.33,43.68,46.7,1,0,9603,0,0,0,,,,,1
+754,5194,4756,4326,Used by Total in Mekong delta.,Academic research not officially adopted.,3770,9.34,11.03,104.25,107.11,1,0,9607,-192.873,-39.382,-111.202,0.00205,0.0005,-0.00335,0.0188,0
+755,6960,4756,4326,,Academic research not officially adopted.,3328,8.5,23.33,102.14,109.52,1,0,9607,-191.90441429,-39.30318279,-111.45032835,-0.00928836,0.01975479,-0.00427372,0.252906278,1
+756,1931,4643,4326,,"Accuracy better than +/- 1 metre.",2821,-19.85,-19.5,163.54,163.75,1,0,9606,-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002,1
+757,4290,4475,4326,"Parameter values taken from Cadastre 1997 to RGM04 (1) (transformation code 4478) assuming that RGM04 is coincident with WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",3340,-13.05,-12.61,44.98,45.35,1,0,9603,-381.788,-57.501,-256.673,,,,,1
+758,5374,5354,4326,,Accuracy 1m.,1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,0,0,0,,,,,1
+759,15787,4701,4326,Derived by Topnav in 1991 at station TSH 85.,Oil exploration. Accuracy 5m.,3171,-6.04,-4.28,12.17,16.28,1,0,9603,-79.9,-158,-168.9,,,,,1
+760,4832,4483,4326,,Accuracy 1m.,1160,12.1,32.72,-122.19,-84.64,1,0,9603,0,0,0,,,,,1
+761,1917,4633,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15902.,"Accuracy +/- 10 metres.",2814,-21.24,-20.62,166.98,167.52,1,0,9603,336,223,-231,,,,,0
+762,1927,4633,4326,Withdrawn by information source and replaced by improved information - see tfm code 15902.,"Accuracy better than +/- 1 metre.",2814,-21.24,-20.62,166.98,167.52,1,0,9606,137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824,0
+763,15902,4633,4326,"Parameter values taken from IGN56 Lifou to RGNC91-93 (1) ( code 15883) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 1 metre.,2814,-21.24,-20.62,166.98,167.52,1,0,9603,335.47,222.58,-230.94,,,,,1
+764,15925,4758,4326,,For all practical purposes JAD2001 can be considered to be coincident with WGS 84.,1128,14.08,19.36,-80.6,-74.51,1,0,9603,0,0,0,,,,,1
+765,6711,6706,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. RDN2008 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",1127,34.76,47.1,5.93,18.99,1,0,9603,0,0,0,,,,,1
+766,15845,4161,4326,Transformation parameter precision given to millimetres in information source but due to accuracy rounded to nearest decimetre for EPSG database.,Geodetic surveying within the oil industry. Accuracy 25 m.,1265,-46.7,-45.19,-69.5,-67.1,1,0,9603,27.5,14,186.4,,,,,1
+767,15931,4759,4326,"Approximation at the +/- 1m level assuming that NAD83(NSRS2007) is equivalent to WGS 84 within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1511,14.92,74.71,167.65,-63.88,1,0,9603,0,0,0,,,,,1
+768,1540,4163,4326,,Accuracy better than 1 metre.,1257,8.95,19,41.08,57.96,1,0,9603,0,0,0,,,,,1
+769,4905,5013,4326,,PTRA08 and WGS 84 are realizations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,3670,29.24,43.07,-35.58,-12.48,1,0,9603,0,0,0,,,,,1
+770,6195,5527,4326,"Parameter values from SAD69(96) to SIRGAS 2000 (2)) (tfm code 5881) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation, based on SAD69 to SIRGAS 2000 (1)) (tfm code 15485). Used by Petrobras and ANP from 1994.","Accuracy generally better than 1m except in Amazon basin where it degenerates to 5m. Should be used only to transform data obtained independently of the classical geodetic network (GPS observations conducted after 1994).",1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-67.35,3.88,-38.22,,,,,1
+771,15806,4719,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis",3188,-27.25,-27.01,-109.51,-109.16,1,0,9603,211,147,111,,,,,1
+772,15860,4702,4326,Mauritania 1999 can be considered to be the same as WGS 84 within the accuracy of this transformation.,Minerals management. Accuracy 1m.,1157,14.72,27.3,-20.04,-4.8,1,0,9603,0,0,0,,,,,1
+773,15971,4762,4326,"Approximation at the +/- 1m level assuming that BDA2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1047,28.91,35.73,-68.83,-60.7,1,0,9603,0,0,0,,,,,1
+774,5375,5360,4326,,Accuracy 1m.,1066,-59.87,-17.5,-113.21,-65.72,1,0,9603,0,0,0,,,,,1
+775,15972,4763,4326,"Approximation at the +/- 1m level assuming that Pitcairn 2006 is equivalent to WGS 84.","Accuracy +/- 1 metre.",3208,-25.14,-25,-130.16,-130.01,1,0,9603,0,0,0,,,,,1
+776,1558,4166,4326,Derived at 5 stations.,For military purposes. Accuracy 1m in each axis.,3266,33.14,38.64,124.53,131.01,1,0,9603,0,0,0,,,,,1
+777,4084,4081,4326,"Approximation at the +/- 1m level assuming that REGCAN95 is equivalent to WGS 84.","Accuracy +/- 1m.",3199,24.6,32.76,-21.93,-11.75,1,0,9603,0,0,0,,,,,1
+778,15974,4764,4326,"Approximation at the +/- 1m level assuming that RSRGD2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",3558,-90,-59.99,144.99,-144.99,1,0,9603,0,0,0,,,,,1
+779,5553,5546,4326,"Exact in 1994 but due to significant and variable tectonic activity in PNG, in 2011 PNG94 and WGS 84 differ generally by 2m but in areas of significant tectonic activity differences can exceed 9m.",Approximation at the 2-10m level.,1187,-14.75,2.58,139.2,162.81,1,0,9603,0,0,0,,,,,1
+780,15870,4679,4326,Derived at 5 points in 2002.,Hydrographic survey,2967,19.37,21.34,-17.08,-15.88,1,0,9603,-80.01,253.26,291.19,,,,,1
+781,15817,4727,4326,"Derived at 1 satellite station. Information source states ""provided for historical purposes only. These parameter [values] should not be used"". Replaced by Midway 1961 to WGS 84 (2) (tfm code 15818).","Military and topographic mapping. Accuracy +/- 25m in each axis.",3202,28.13,28.28,-177.45,-177.31,1,0,9603,912,-58,1227,,,,,0
+782,15818,4727,4326,"Derived at 1 satellite station. Replaces Midway 1961 to WGS 84 (1) (tfm code 15817).","Military and topographic mapping. Accuracy +/- 25m in each axis.",3202,28.13,28.28,-177.45,-177.31,1,0,9603,403,-81,277,,,,,1
+783,15976,4765,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1212,45.42,46.88,13.38,16.61,1,0,9603,0,0,0,,,,,1
+784,15820,4730,4326,Derived at 1 satellite station.,For military and topographic mapping. Accuracy 25m in each axis.,3194,-17.32,-14.57,166.47,168.71,1,0,9603,170,42,84,,,,,1
+785,15709,4680,4326,Derived by IGN in 1992 at 7 stations within Nouakchott city.,Oil exploration.,2972,17.89,18.25,-16.11,-15.83,1,0,9603,124.5,-63.5,-281,,,,,1
+786,15805,4718,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3198,-8.86,-7.52,156.44,158.2,1,0,9603,230,-199,-752,,,,,1
+787,15807,4718,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3197,-9.98,-9.2,159.55,160.88,1,0,9603,252,-209,-751,,,,,0
+788,5585,4023,4326,"Parameter values from MOLDREF99 to ETRS89 (1) (code 5584). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications with an accuracy of 1m.,1162,45.44,48.47,26.63,30.13,1,0,9603,0,0,0,,,,,1
+789,15831,4737,4326,"Approximation at the +/- 1m level assuming that ITRF2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1135,28.6,40.27,122.71,134.28,1,0,9603,0,0,0,,,,,1
+790,5590,5561,4326,"Derived through concatenation of UCS-2000 to S-42 (1) (tfm code 5586 reversed) [an approximation] and S-42 to WGS 84 (16) (tfm code 15865) [derived for whole FSU rather than Ukraine]. Replaced by UCS-2000 to WGS 84 (2) (tfm code 5840).",Accuracy 5 metres.,1242,43.18,52.38,22.15,40.18,1,0,9607,25,-141,-78.5,0,-0.35,-0.736,0,1
+791,5823,5561,4326,"Parameter values taken from Ukraine 2000 to ITRF2005 (1) (code 5822) assuming that ITRS2005 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level assuming that ITRS2005 is equivalent to WGS 84.",1242,43.18,52.38,22.15,40.18,1,1,9603,24,-121,-76,,,,,0
+792,5840,5561,4326,"Rounded parameter values taken from UCS-2000 to ITRF2000 (1) (code 7817) assuming that WGS 84 is equivalent to ITRS2000 within the accuracy of the transformation. Replaces UCS-2000 to WGS 84 (1) (tfm code 5590).","Approximation at the +/- 1m level assuming that WGS 84 is equivalent to ITRS2000.",1242,43.18,52.38,22.15,40.18,1,0,9603,24,-121,-76,,,,,0
+793,6143,4726,4326,"Parameter values are taken from SIGD59 to CIGD11 (1) (code 6137) assuming that CIGD11 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1m.,3186,19.63,19.78,-80.14,-79.69,1,0,9607,8.853,-52.644,180.304,0.393,2.323,-2.96,-24.081,1
+794,15814,4726,4326,Determined from 1 satellite station.,"Military mapping. Accuracy +/- 25m in each axis.",3186,19.63,19.78,-80.14,-79.69,1,0,9603,42,124,147,,,,,0
+795,15829,4726,4326,Determined from 2 satellite stations.,"Topographic survey. Accuracy +/- 1m.",3186,19.63,19.78,-80.14,-79.69,1,0,9603,44.4,109,151.7,,,,,0
+796,15700,4682,4326,Derived at origin station in Dhaka.,Oil exploration.,1041,18.56,26.64,88.01,92.67,1,1,9603,283.8,735.9,261.1,,,,,0
+797,15779,4682,4326,Derived at origin station in Dhaka. Source information given to 3 decimal places but rounded by OGP to be commensurate with stated accuracy.,Oil exploration.,1041,18.56,26.64,88.01,92.67,1,0,9603,283.7,735.9,261.1,,,,,1
+798,1919,4635,4326,,"Accuracy better than +/- 1 metre.",2813,-20.77,-20.34,166.44,166.71,1,1,9606,-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798,0
+799,15708,4683,4326,Derived during GPS campaign which established PRS92 coordinates at 330 first order stations.,"Accuracy: 1-10 parts per million.",1190,3,22.18,116.04,129.95,1,0,9607,-127.62,-67.24,-47.04,3.068,-4.903,-1.578,-1.06,1
+800,6701,5246,4326,"Approximation at the +/- 1m level assuming that GDBD2009 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,1055,4.01,6.31,112.37,115.37,1,0,9603,0,0,0,,,,,1
+801,1837,4257,4326,,Oil exploration.,1316,-6.54,-1.88,118.71,120.78,1,0,9603,-587.8,519.75,145.76,,,,,1
+802,15713,4684,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3274,-0.69,7.08,72.81,73.69,1,0,9603,-133,-321,50,,,,,1
+803,6177,6135,4326,"Approximation at the +/- 1m level assuming that CIGD11 is equivalent to WGS 84.","Accuracy +/- 1m.",1063,17.58,20.68,-83.6,-78.72,1,0,9603,0,0,0,,,,,1
+804,4064,4046,4326,"Approximation at the +/- 1m level assuming that RGRDC 2005 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,3613,-13.46,-3.41,11.79,29.81,1,0,9603,0,0,0,,,,,1
+805,15875,4721,4326,Derived at 20 stations. Also published by NGA in GeoTrans v3.4 software with parameter values rounded to integer.,"For military purposes. Accuracy 5m, 3m and 2m in X, Y and Z axes.",3398,-19.22,-16.1,176.81,-179.77,1,0,9603,265.025,384.929,-194.046,,,,,1
+806,7445,6311,4326,"Parameter values from CGRS93 to ETRS89 (1) (code 7444). Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",Small scale hydrographic and aviation  mapping.,3236,34.59,35.74,32.2,34.65,1,1,9606,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926,0
+807,7721,6311,4326,"Parameter values from CGRS93 to ETRS89 (1) (code 7720). Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",Small scale hydrographic and aviation  mapping.,3236,34.59,35.74,32.2,34.65,1,0,9607,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926,1
+808,5599,5593,4326,,Approximation at the 1m level.,3889,54.33,54.83,10.66,12.01,1,0,9603,0,0,0,,,,,1
+809,15832,4687,4326,"Transformation is to original definition of WGS 84. It is consistent with later WGS 84 realisations G730, G873 and G1150 to no better than 1m.","Accuracy +/- 0.5 metre (to original definition of WGS 84 - see remarks).",1098,-31.24,-4.52,-158.13,-131.97,1,0,9607,0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093,1
+810,15833,4687,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84.","Accuracy +/- 1 metre.",1098,-31.24,-4.52,-158.13,-131.97,1,0,9603,0,0,0,,,,,0
+811,1921,4636,4326,,"Accuracy +/- 10 metres.",2817,-66.78,-66.1,139.44,141.5,1,0,9603,365,194,166,,,,,1
+812,15772,4688,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Fatu Iva 72 to RGPF (1) (tfm code 15760).","Accuracy +/- 2 metres.",3133,-10.6,-10.36,-138.75,-138.54,1,0,9607,347.103,1078.125,2623.922,33.8875,-70.6773,9.3943,186.074,1
+813,5236,5233,4326,Derived at 58 stations.,Accuracy 14m.,3310,5.86,9.88,79.64,81.95,1,0,9607,-0.293,766.95,87.713,-0.195704,-1.695068,-3.473016,-0.039338,1
+814,4077,4075,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. SREF98 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",3534,41.85,46.19,18.81,23.01,1,0,9603,0,0,0,,,,,1
+815,4835,4690,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Tahiti 79 to RGPF (1) (tfm code 15756).","Accuracy +/- 1 metre.",3124,-17.93,-17.44,-149.7,-149.09,1,0,9607,221.525,152.948,176.768,2.3847,1.3896,0.877,11.4741,1
+816,1922,4637,4326,,"Accuracy +/- 10 metres.",2818,-67.13,-65.61,136,142,1,0,9603,325,154,172,,,,,1
+817,15797,4712,4326,Derived at 2 satellite stations.,For military purposes only. Accuracy 25m in each axis.,3182,-8.03,-7.83,-14.46,-14.24,1,0,9603,-205,107,53,,,,,1
+818,15769,4691,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Moorea 87 to RGPF (1) (tfm code 15757).","Accuracy +/- 1 metre.",3125,-17.63,-17.41,-150,-149.73,1,0,9607,215.525,149.593,176.229,3.2624,1.692,1.1571,10.4773,1
+819,6142,4723,4326,"Parameter values are taken from GCGD59 to CIGD11 (1) (code 6136) assuming that CIGD11 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1m.,3185,19.21,19.41,-81.46,-81.04,1,0,9607,-179.483,-69.379,-27.584,7.862,-8.163,-6.042,-13.925,1
+820,15830,4723,4326,Determined from 6 satellite stations.,"Topographic survey. Accuracy +/- 1m.",3185,19.21,19.41,-81.46,-81.04,1,0,9603,67.8,106.1,138.8,,,,,0
+821,4066,4695,4326,"Parameter values taken from Katanga 1955 to RGRDC 2005 (1) (code 4065) assuming that RGRDC 2005 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1.5m.,3614,-12.01,-11.13,26.38,27.75,1,0,9603,-103.746,-9.614,-255.95,,,,,1
+822,15746,4693,4326,Derived in Tombak district in March 2005. Used for South Pars phase 11 and Pars LNG plants.,Petroleum Exploration and Production.,3141,27.63,27.81,52.09,52.26,1,0,9603,0,-0.15,0.68,,,,,1
+823,1441,4601,4326,,"?",1273,16.94,17.22,-61.95,-61.61,1,0,9603,-255,-15,71,,,,,1
+824,15811,4601,4326,Determined from 1 satellite station.,"Military mapping. Accuracy +/- 25m in each axis.",1273,16.94,17.22,-61.95,-61.61,1,0,9603,-270,13,62,,,,,0
+825,1442,4602,4326,,"?",3239,15.14,15.69,-61.55,-61.2,1,0,9603,725,685,536,,,,,1
+826,1443,4603,4326,,"?",3118,11.94,12.29,-61.84,-61.54,1,0,9603,72,213.7,93,,,,,1
+827,1444,4604,4326,Derived at 1 satellite station.,Accuracy 25m in each axis.,3279,16.62,16.87,-62.29,-62.08,1,0,9603,174,359,365,,,,,1
+828,1445,4605,4326,,"?",3297,17.06,17.46,-62.92,-62.5,1,0,9603,9,183,236,,,,,1
+829,15750,4605,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m in each of X, Y and Z axes.",3297,17.06,17.46,-62.92,-62.5,1,0,9603,-7,215,225,,,,,0
+830,1446,4606,4326,,"?",3298,13.66,14.16,-61.13,-60.82,1,0,9603,-149,128,296,,,,,1
+831,6897,4606,4326,Derived at 3 stations.,For military purposes only. Accuracy 1m in each axis.,3298,13.66,14.16,-61.13,-60.82,1,0,9603,-153,153,307,,,,,0
+832,1959,4607,4326,Derived at 4 points.,1m accuracy.,3300,12.54,13.44,-61.52,-61.07,1,0,9603,195.671,332.517,274.607,,,,,1
diff --git a/resources/gcs.csv b/resources/gcs.csv
new file mode 100644
index 0000000000..e6d8ae6180
--- /dev/null
+++ b/resources/gcs.csv
@@ -0,0 +1,514 @@
+"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","GREENWICH_DATUM","UOM_CODE","ELLIPSOID_CODE","PRIME_MERIDIAN_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","COORD_OP_CODE","COORD_OP_CODE_MULTI","COORD_OP_METHOD_CODE","DX","DY","DZ","RX","RY","RZ","DS"
+3819,HD1909,1024,Hungarian Datum 1909,1024,9122,7004,8901,1,0,6422,3817,0,9607,595.48,121.69,515.35,-4.115,2.9383,-0.853,-3.408
+3821,TWD67,1025,Taiwan Datum 1967,1025,9122,7050,8901,1,0,6422,,0,,,,,,,,
+3824,TWD97,1026,Taiwan Datum 1997,1026,9122,7019,8901,1,0,6422,3830,0,9603,0,0,0,,,,
+3889,IGRS,1029,Iraqi Geospatial Reference System,1029,9122,7019,8901,1,0,6422,3894,0,9603,0,0,0,,,,
+3906,MGI 1901,1031,MGI 1901,1031,9122,7004,8901,1,0,6422,3962,1,9603,682,-203,480,,,,
+4001,Unknown datum based upon the Airy 1830 ellipsoid,6001,"Not specified (based on Airy 1830 ellipsoid)",6001,9122,7001,8901,0,0,6422,,0,,,,,,,,
+4002,Unknown datum based upon the Airy Modified 1849 ellipsoid,6002,"Not specified (based on Airy Modified 1849 ellipsoid)",6002,9122,7002,8901,0,0,6422,,0,,,,,,,,
+4003,Unknown datum based upon the Australian National Spheroid,6003,"Not specified (based on Australian National Spheroid)",6003,9122,7003,8901,0,0,6422,,0,,,,,,,,
+4004,Unknown datum based upon the Bessel 1841 ellipsoid,6004,"Not specified (based on Bessel 1841 ellipsoid)",6004,9122,7004,8901,0,0,6422,,0,,,,,,,,
+4005,Unknown datum based upon the Bessel Modified ellipsoid,6005,"Not specified (based on Bessel Modified ellipsoid)",6005,9122,7005,8901,0,0,6422,,0,,,,,,,,
+4006,Unknown datum based upon the Bessel Namibia ellipsoid,6006,"Not specified (based on Bessel Namibia ellipsoid)",6006,9122,7046,8901,0,0,6422,,0,,,,,,,,
+4007,Unknown datum based upon the Clarke 1858 ellipsoid,6007,"Not specified (based on Clarke 1858 ellipsoid)",6007,9122,7007,8901,0,0,6422,,0,,,,,,,,
+4008,Unknown datum based upon the Clarke 1866 ellipsoid,6008,"Not specified (based on Clarke 1866 ellipsoid)",6008,9122,7008,8901,0,0,6422,,0,,,,,,,,
+4009,Unknown datum based upon the Clarke 1866 Michigan ellipsoid,6009,"Not specified (based on Clarke 1866 Michigan ellipsoid)",6009,9122,7009,8901,0,1,6422,,0,,,,,,,,
+4010,"Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid",6010,"Not specified (based on Clarke 1880 (Benoit) ellipsoid)",6010,9122,7010,8901,0,0,6422,,0,,,,,,,,
+4011,"Unknown datum based upon the Clarke 1880 (IGN) ellipsoid",6011,"Not specified (based on Clarke 1880 (IGN) ellipsoid)",6011,9122,7011,8901,0,0,6422,,0,,,,,,,,
+4012,"Unknown datum based upon the Clarke 1880 (RGS) ellipsoid",6012,"Not specified (based on Clarke 1880 (RGS) ellipsoid)",6012,9122,7012,8901,0,0,6422,,0,,,,,,,,
+4013,"Unknown datum based upon the Clarke 1880 (Arc) ellipsoid",6013,"Not specified (based on Clarke 1880 (Arc) ellipsoid)",6013,9122,7013,8901,0,0,6422,,0,,,,,,,,
+4014,"Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid",6014,"Not specified (based on Clarke 1880 (SGA 1922) ellipsoid)",6014,9122,7014,8901,0,0,6422,,0,,,,,,,,
+4015,"Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid",6015,"Not specified (based on Everest 1830 (1937 Adjustment) ellipsoid)",6015,9122,7015,8901,0,0,6422,,0,,,,,,,,
+4016,"Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid",6016,"Not specified (based on Everest 1830 (1967 Definition) ellipsoid)",6016,9122,7016,8901,0,0,6422,,0,,,,,,,,
+4018,Unknown datum based upon the Everest 1830 Modified ellipsoid,6018,"Not specified (based on Everest 1830 Modified ellipsoid)",6018,9122,7018,8901,0,0,6422,,0,,,,,,,,
+4019,Unknown datum based upon the GRS 1980 ellipsoid,6019,"Not specified (based on GRS 1980 ellipsoid)",6019,9122,7019,8901,0,0,6422,,0,,,,,,,,
+4020,Unknown datum based upon the Helmert 1906 ellipsoid,6020,"Not specified (based on Helmert 1906 ellipsoid)",6020,9122,7020,8901,0,0,6422,,0,,,,,,,,
+4021,Unknown datum based upon the Indonesian National Spheroid,6021,"Not specified (based on Indonesian National Spheroid)",6021,9122,7021,8901,0,0,6422,,0,,,,,,,,
+4022,Unknown datum based upon the International 1924 ellipsoid,6022,"Not specified (based on International 1924 ellipsoid)",6022,9122,7022,8901,0,0,6422,,0,,,,,,,,
+4023,MOLDREF99,1032,MOLDREF99,1032,9122,7019,8901,1,0,6422,5585,0,9603,0,0,0,,,,
+4024,Unknown datum based upon the Krassowsky 1940 ellipsoid,6024,"Not specified (based on Krassowsky 1940 ellipsoid)",6024,9122,7024,8901,0,0,6422,,0,,,,,,,,
+4025,Unknown datum based upon the NWL 9D ellipsoid,6025,"Not specified (based on NWL 9D ellipsoid)",6025,9122,7025,8901,0,0,6422,,0,,,,,,,,
+4027,Unknown datum based upon the Plessis 1817 ellipsoid,6027,"Not specified (based on Plessis 1817 ellipsoid)",6027,9122,7027,8901,0,0,6422,,0,,,,,,,,
+4028,Unknown datum based upon the Struve 1860 ellipsoid,6028,"Not specified (based on Struve 1860 ellipsoid)",6028,9122,7028,8901,0,0,6422,,0,,,,,,,,
+4029,Unknown datum based upon the War Office ellipsoid,6029,"Not specified (based on War Office ellipsoid)",6029,9122,7029,8901,0,0,6422,,0,,,,,,,,
+4030,Unknown datum based upon the WGS 84 ellipsoid,6030,"Not specified (based on WGS 84 ellipsoid)",6030,9122,7030,8901,0,0,6422,,0,,,,,,,,
+4031,Unknown datum based upon the GEM 10C ellipsoid,6031,"Not specified (based on GEM 10C ellipsoid)",6031,9122,7031,8901,0,0,6422,,0,,,,,,,,
+4032,Unknown datum based upon the OSU86F ellipsoid,6032,"Not specified (based on OSU86F ellipsoid)",6032,9122,7032,8901,0,0,6422,,0,,,,,,,,
+4033,Unknown datum based upon the OSU91A ellipsoid,6033,"Not specified (based on OSU91A ellipsoid)",6033,9122,7033,8901,0,0,6422,,0,,,,,,,,
+4034,Unknown datum based upon the Clarke 1880 ellipsoid,6034,"Not specified (based on Clarke 1880 ellipsoid)",6034,9122,7034,8901,0,0,6422,,0,,,,,,,,
+4035,Unknown datum based upon the Authalic Sphere,6035,"Not specified (based on Authalic Sphere)",6035,9108,7035,8901,0,1,6402,,0,,,,,,,,
+4036,Unknown datum based upon the GRS 1967 ellipsoid,6036,"Not specified (based on GRS 1967 ellipsoid)",6036,9122,7036,8901,0,0,6422,,0,,,,,,,,
+4041,Unknown datum based upon the Average Terrestrial System 1977 ellipsoid,6041,"Not specified (based on Average Terrestrial System 1977 ellipsoid)",6041,9122,7041,8901,0,0,6422,,0,,,,,,,,
+4042,"Unknown datum based upon the Everest (1830 Definition) ellipsoid",6042,"Not specified (based on Everest (1830 Definition) ellipsoid)",6042,9122,7042,8901,0,0,6422,,0,,,,,,,,
+4043,Unknown datum based upon the WGS 72 ellipsoid,6043,"Not specified (based on WGS 72 ellipsoid)",6043,9122,7043,8901,0,0,6422,,0,,,,,,,,
+4044,"Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid",6044,"Not specified (based on Everest 1830 (1962 Definition) ellipsoid)",6044,9122,7044,8901,0,0,6422,,0,,,,,,,,
+4045,"Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid",6045,"Not specified (based on Everest 1830 (1975 Definition) ellipsoid)",6045,9122,7045,8901,0,0,6422,,0,,,,,,,,
+4046,RGRDC 2005,1033,Reseau Geodesique de la RDC 2005,1033,9122,7019,8901,1,0,6422,4064,0,9603,0,0,0,,,,
+4047,Unspecified datum based upon the GRS 1980 Authalic Sphere,6047,"Not specified (based on GRS 1980 Authalic Sphere)",6047,9122,7048,8901,0,0,6422,,0,,,,,,,,
+4052,Unspecified datum based upon the Clarke 1866 Authalic Sphere,6052,"Not specified (based on Clarke 1866 Authalic Sphere)",6052,9122,7052,8901,0,0,6422,,0,,,,,,,,
+4053,Unspecified datum based upon the International 1924 Authalic Sphere,6053,"Not specified (based on International 1924 Authalic Sphere)",6053,9122,7057,8901,0,0,6422,,0,,,,,,,,
+4054,Unspecified datum based upon the Hughes 1980 ellipsoid,6054,"Not specified (based on Hughes 1980 ellipsoid)",6054,9122,7058,8901,0,0,6422,,0,,,,,,,,
+4055,Popular Visualisation CRS,6055,Popular Visualisation Datum,6055,9122,7059,8901,1,1,6422,15973,0,9603,0,0,0,,,,
+4075,SREF98,1034,Serbian Reference Network 1998,1034,9122,7019,8901,1,0,6422,4077,0,9603,0,0,0,,,,
+4081,REGCAN95,1035,Red Geodesica de Canarias 1995,1035,9122,7019,8901,1,0,6422,4084,0,9603,0,0,0,,,,
+4120,Greek,6120,Greek,6120,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4121,GGRS87,6121,Greek Geodetic Reference System 1987,6121,9122,7019,8901,1,0,6422,1272,0,9603,-199.87,74.79,246.62,,,,
+4122,ATS77,6122,Average Terrestrial System 1977,6122,9122,7041,8901,1,0,6422,,0,,,,,,,,
+4123,KKJ,6123,"Kartastokoordinaattijarjestelma (1966)",6123,9122,7022,8901,1,0,6422,10099,1,9607,-96.062,-82.428,-121.753,-4.801,-0.345,1.376,1.496
+4124,RT90,6124,Rikets koordinatsystem 1990,6124,9122,7004,8901,1,0,6422,1896,1,9607,414.1,41.3,603.1,0.855,-2.141,7.023,0
+4125,Samboja,6125,Samboja,6125,9108,7004,8901,1,1,6402,1282,0,9603,-404.78,685.68,45.47,,,,
+4126,"LKS94 (ETRS89)",6126,"Lithuania 1994 (ETRS89)",6126,9108,7019,8901,1,1,6402,,0,,,,,,,,
+4127,Tete,6127,Tete,6127,9122,7008,8901,1,0,6422,6901,1,9603,-80,-100,-228,,,,
+4128,Madzansua,6128,Madzansua,6128,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4129,Observatario,6129,Observatario,6129,9122,7008,8901,1,0,6422,6900,0,9603,-132,-110,-335,,,,
+4130,Moznet,6130,"Moznet (ITRF94)",6130,9122,7030,8901,1,0,6422,1302,0,9607,0,0,0,0,0,0,0
+4131,Indian 1960,6131,Indian 1960,6131,9122,7015,8901,1,0,6422,1542,1,9603,198,881,317,,,,
+4132,FD58,6132,Final Datum 1958,6132,9122,7012,8901,1,0,6422,1513,1,9603,-241.54,-163.64,396.06,,,,
+4133,EST92,6133,Estonia 1992,6133,9122,7019,8901,1,0,6422,1333,0,9607,0.055,-0.541,-0.185,-0.0183,0.0003,0.007,-0.014
+4134,PSD93,6134,PDO Survey Datum 1993,6134,9122,7012,8901,1,0,6422,1439,1,9606,-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006
+4135,Old Hawaiian,6135,Old Hawaiian,6135,9122,7008,8901,1,0,6422,15824,1,9603,61,-285,-181,,,,
+4136,St. Lawrence Island,6136,St. Lawrence Island,6136,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4137,St. Paul Island,6137,St. Paul Island,6137,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4138,St. George Island,6138,St. George Island,6138,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4139,Puerto Rico,6139,Puerto Rico,6139,9122,7008,8901,1,0,6422,1893,0,9603,11,72,-101,,,,
+4140,"NAD83(CSRS98)",6140,NAD83 Canadian Spatial Reference System,6140,9108,7019,8901,1,1,6402,1473,0,9603,0,0,0,,,,
+4141,Israel 1993,6141,Israel 1993,6141,9122,7019,8901,1,0,6422,1073,0,9603,-48,55,52,,,,
+4142,Locodjo 1965,6142,Locodjo 1965,6142,9122,7012,8901,1,0,6422,1469,0,9603,-125,53,467,,,,
+4143,Abidjan 1987,6143,Abidjan 1987,6143,9122,7012,8901,1,0,6422,1470,1,9603,-124.76,53,466.79,,,,
+4144,Kalianpur 1937,6144,Kalianpur 1937,6144,9122,7015,8901,1,0,6422,1533,1,9603,214,804,268,,,,
+4145,Kalianpur 1962,6145,Kalianpur 1962,6145,9122,7044,8901,1,0,6422,1247,1,9603,283,682,231,,,,
+4146,Kalianpur 1975,6146,Kalianpur 1975,6146,9122,7045,8901,1,0,6422,1156,0,9603,295,736,257,,,,
+4147,Hanoi 1972,6147,Hanoi 1972,6147,9122,7024,8901,1,0,6422,1544,0,9603,-17.51,-108.32,-62.39,,,,
+4148,Hartebeesthoek94,6148,Hartebeesthoek94,6148,9122,7030,8901,1,0,6422,1505,0,9603,0,0,0,,,,
+4149,CH1903,6149,CH1903,6149,9122,7004,8901,1,0,6422,1510,1,9603,674.374,15.056,405.346,,,,
+4150,"CH1903+",6150,"CH1903+",6150,9122,7004,8901,1,0,6422,1676,0,9603,674.374,15.056,405.346,,,,
+4151,CHTRF95,6151,Swiss Terrestrial Reference Frame 1995,6151,9122,7019,8901,1,0,6422,1511,0,9603,0,0,0,,,,
+4152,"NAD83(HARN)",6152,"NAD83 (High Accuracy Reference Network)",6152,9122,7019,8901,1,0,6422,1580,1,9603,0,0,0,,,,
+4153,Rassadiran,6153,Rassadiran,6153,9122,7022,8901,1,0,6422,1512,0,9603,-133.63,-157.5,-158.62,,,,
+4154,"ED50(ED77)",6154,"European Datum 1950(1977)",6154,9122,7022,8901,1,0,6422,1141,1,9603,-117,-132,-164,,,,
+4155,Dabola 1981,6155,Dabola 1981,6155,9122,7011,8901,1,0,6422,1518,0,9603,-83,37,124,,,,
+4156,S-JTSK,6156,System Jednotne Trigonometricke Site Katastralni,6156,9122,7004,8901,1,0,6422,15965,1,9603,589,76,480,,,,
+4157,Mount Dillon,6157,Mount Dillon,6157,9122,7007,8901,1,0,6422,,0,,,,,,,,
+4158,Naparima 1955,6158,Naparima 1955,6158,9122,7022,8901,1,0,6422,1555,1,9603,-0.465,372.095,171.736,,,,
+4159,ELD79,6159,European Libyan Datum 1979,6159,9122,7022,8901,1,0,6422,15909,1,9603,-115.8543,-99.0583,-152.4616,,,,
+4160,Chos Malal 1914,6160,Chos Malal 1914,6160,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4161,Pampa del Castillo,6161,Pampa del Castillo,6161,9122,7022,8901,1,0,6422,15845,0,9603,27.5,14,186.4,,,,
+4162,Korean 1985,6162,Korean Datum 1985,6162,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4163,Yemen NGN96,6163,Yemen National Geodetic Network 1996,6163,9122,7030,8901,1,0,6422,1540,0,9603,0,0,0,,,,
+4164,South Yemen,6164,South Yemen,6164,9122,7024,8901,1,0,6422,1682,0,9603,-76,-138,67,,,,
+4165,Bissau,6165,Bissau,6165,9122,7022,8901,1,0,6422,1547,0,9603,-173,253,27,,,,
+4166,Korean 1995,6166,Korean Datum 1995,6166,9122,7030,8901,1,0,6422,1558,0,9603,0,0,0,,,,
+4167,NZGD2000,6167,New Zealand Geodetic Datum 2000,6167,9122,7019,8901,1,0,6422,1565,0,9603,0,0,0,,,,
+4168,Accra,6168,Accra,6168,9122,7029,8901,1,0,6422,1569,1,9603,-199,32,322,,,,
+4169,American Samoa 1962,6169,American Samoa 1962,6169,9122,7008,8901,1,0,6422,1577,0,9603,-115,118,426,,,,
+4170,SIRGAS 1995,6170,Sistema de Referencia Geocentrico para America del Sur 1995,6170,9122,7019,8901,1,0,6422,1581,0,9603,0,0,0,,,,
+4171,RGF93,6171,Reseau Geodesique Francais 1993,6171,9122,7019,8901,1,0,6422,1671,0,9603,0,0,0,,,,
+4172,POSGAR,6172,Posiciones Geodesicas Argentinas,6172,9108,7019,8901,1,1,6402,1598,0,9603,0,0,0,,,,
+4173,IRENET95,6173,IRENET95,6173,9122,7019,8901,1,0,6422,1678,0,9603,0,0,0,,,,
+4174,Sierra Leone 1924,6174,Sierra Leone Colony 1924,6174,9122,7029,8901,1,0,6422,,0,,,,,,,,
+4175,Sierra Leone 1968,6175,Sierra Leone 1968,6175,9122,7012,8901,1,0,6422,1614,0,9603,-88,4,101,,,,
+4176,Australian Antarctic,6176,Australian Antarctic Datum 1998,6176,9122,7019,8901,1,0,6422,1890,0,9603,0,0,0,,,,
+4178,"Pulkovo 1942(83)",6178,"Pulkovo 1942(83)",6178,9122,7024,8901,1,0,6422,15998,1,9603,26,-121,-78,,,,
+4179,"Pulkovo 1942(58)",6179,"Pulkovo 1942(58)",6179,9122,7024,8901,1,0,6422,1645,1,9606,33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84
+4180,EST97,6180,Estonia 1997,6180,9122,7019,8901,1,0,6422,1649,0,9603,0,0,0,,,,
+4181,Luxembourg 1930,6181,Luxembourg 1930,6181,9122,7022,8901,1,0,6422,5486,1,9607,-189.6806,18.3463,-42.7695,0.33746,3.09264,-2.53861,0.4598
+4182,Azores Occidental 1939,6182,Azores Occidental Islands 1939,6182,9122,7022,8901,1,0,6422,1887,1,9603,-425,-169,81,,,,
+4183,Azores Central 1948,6183,Azores Central Islands 1948,6183,9122,7022,8901,1,0,6422,1886,0,9603,-104,167,-38,,,,
+4184,Azores Oriental 1940,6184,Azores Oriental Islands 1940,6184,9122,7022,8901,1,0,6422,1885,0,9603,-203,141,53,,,,
+4185,Madeira 1936,6185,Madeira 1936,6185,9108,7022,8901,1,1,6402,,0,,,,,,,,
+4188,OSNI 1952,6188,OSNI 1952,6188,9122,7001,8901,1,0,6422,1955,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15
+4189,REGVEN,6189,Red Geodesica Venezolana,6189,9122,7019,8901,1,0,6422,1768,0,9603,0,0,0,,,,
+4190,POSGAR 98,6190,Posiciones Geodesicas Argentinas 1998,6190,9122,7019,8901,1,0,6422,1773,1,9603,0,0,0,,,,
+4191,Albanian 1987,6191,Albanian 1987,6191,9122,7024,8901,1,0,6422,7834,1,9607,-44.183,-0.58,-38.489,-2.3867,-2.7072,3.5196,-8.2703
+4192,Douala 1948,6192,Douala 1948,6192,9122,7022,8901,1,0,6422,15873,0,9603,-206.1,-174.7,-87.7,,,,
+4193,Manoca 1962,6193,Manoca 1962,6193,9122,7011,8901,1,0,6422,1796,0,9603,-70.9,-151.8,-41.4,,,,
+4194,Qornoq 1927,6194,Qornoq 1927,6194,9122,7022,8901,1,0,6422,1797,1,9603,164,138,-189,,,,
+4195,Scoresbysund 1952,6195,Scoresbysund 1952,6195,9122,7022,8901,1,0,6422,1799,0,9606,105,326,-102.5,0,0,0.814,-0.6
+4196,Ammassalik 1958,6196,Ammassalik 1958,6196,9122,7022,8901,1,0,6422,1800,0,9606,-45,417,-3.5,0,0,0.814,-0.6
+4197,Garoua,6197,Garoua,6197,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4198,Kousseri,6198,Kousseri,6198,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4199,Egypt 1930,6199,Egypt 1930,6199,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4200,Pulkovo 1995,6200,Pulkovo 1995,6200,9122,7024,8901,1,0,6422,5043,1,9607,24.47,-130.89,-81.56,0,0,-0.13,-0.22
+4201,Adindan,6201,Adindan,6201,9122,7012,8901,1,0,6422,1100,1,9603,-166,-15,204,,,,
+4202,AGD66,6202,Australian Geodetic Datum 1966,6202,9122,7003,8901,1,0,6422,15980,1,9607,-117.808,-51.536,137.784,-0.303,-0.446,-0.234,-0.29
+4203,AGD84,6203,Australian Geodetic Datum 1984,6203,9122,7003,8901,1,0,6422,1109,1,9603,-134,-48,149,,,,
+4204,Ain el Abd,6204,Ain el Abd 1970,6204,9122,7022,8901,1,0,6422,1111,1,9603,-143,-236,7,,,,
+4205,Afgooye,6205,Afgooye,6205,9122,7024,8901,1,0,6422,1107,0,9603,-43,-163,45,,,,
+4206,Agadez,6206,Agadez,6206,9122,7011,8901,1,0,6422,,0,,,,,,,,
+4207,Lisbon,6207,Lisbon 1937,6207,9122,7022,8901,1,0,6422,1984,1,9603,-304.046,-60.576,103.64,,,,
+4208,Aratu,6208,Aratu,6208,9122,7022,8901,1,0,6422,5067,1,9603,-151.99,287.04,-147.45,,,,
+4209,Arc 1950,6209,Arc 1950,6209,9122,7013,8901,1,0,6422,1113,1,9603,-143,-90,-294,,,,
+4210,Arc 1960,6210,Arc 1960,6210,9122,7012,8901,1,0,6422,1122,1,9603,-160,-6,-302,,,,
+4211,Batavia,6211,Batavia,6211,9122,7004,8901,1,0,6422,1123,1,9603,-377,681,-50,,,,
+4212,Barbados 1938,6212,Barbados 1938,6212,9122,7012,8901,1,0,6422,15793,0,9603,31.95,300.99,419.19,,,,
+4213,Beduaram,6213,Beduaram,6213,9122,7011,8901,1,0,6422,15849,0,9603,-106,-87,188,,,,
+4214,Beijing 1954,6214,Beijing 1954,6214,9122,7024,8901,1,0,6422,15921,1,9603,15.8,-154.4,-82.3,,,,
+4215,Belge 1950,6215,Reseau National Belge 1950,6215,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4216,Bermuda 1957,6216,Bermuda 1957,6216,9122,7008,8901,1,0,6422,1124,1,9603,-73,213,296,,,,
+4218,Bogota 1975,6218,Bogota 1975,6218,9122,7022,8901,1,0,6422,1125,1,9603,307,304,-318,,,,
+4219,Bukit Rimpah,6219,Bukit Rimpah,6219,9122,7004,8901,1,0,6422,1126,0,9603,-384,664,-48,,,,
+4220,Camacupa,6220,Camacupa,6220,9122,7012,8901,1,0,6422,1327,1,9603,-50.9,-347.6,-231,,,,
+4221,Campo Inchauspe,6221,Campo Inchauspe,6221,9122,7022,8901,1,0,6422,1127,1,9603,-148,136,90,,,,
+4222,Cape,6222,Cape,6222,9122,7013,8901,1,0,6422,1128,1,9603,-136,-108,-292,,,,
+4223,Carthage,6223,Carthage,6223,9122,7011,8901,1,0,6422,1130,1,9603,-263,6,431,,,,
+4224,Chua,6224,Chua,6224,9122,7022,8901,1,0,6422,3972,1,9603,-143.87,243.37,-33.52,,,,
+4225,Corrego Alegre 1970-72,6225,Corrego Alegre 1970-72,6225,9122,7022,8901,1,0,6422,6192,1,9603,-205.57,168.77,-4.12,,,,
+4226,"Cote d'Ivoire",6226,"Cote d'Ivoire",6226,9108,7011,8901,1,1,6402,,0,,,,,,,,
+4227,Deir ez Zor,6227,Deir ez Zor,6227,9122,7011,8901,1,0,6422,15742,1,9603,-190.421,8.532,238.69,,,,
+4228,Douala,6228,Douala,6228,9108,7011,8901,1,1,6402,,0,,,,,,,,
+4229,Egypt 1907,6229,Egypt 1907,6229,9122,7020,8901,1,0,6422,1148,1,9603,-130,110,-13,,,,
+4230,ED50,6230,European Datum 1950,6230,9122,7022,8901,1,0,6422,1133,1,9603,-87,-98,-121,,,,
+4231,ED87,6231,European Datum 1987,6231,9122,7022,8901,1,0,6422,3905,1,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218
+4232,Fahud,6232,Fahud,6232,9122,7012,8901,1,0,6422,1438,1,9606,-333.102,-11.02,230.69,0,0,0.554,0.219
+4233,Gandajika 1970,6233,Gandajika 1970,6233,9122,7022,8901,1,1,6422,1894,0,9603,-133,-321,50,,,,
+4234,Garoua,6234,Garoua,6234,9108,7011,8901,1,1,6402,,0,,,,,,,,
+4235,Guyane Francaise,6235,Guyane Francaise,6235,9108,7022,8901,1,1,6402,,0,,,,,,,,
+4236,Hu Tzu Shan 1950,6236,Hu Tzu Shan 1950,6236,9122,7022,8901,1,0,6422,1152,0,9603,-637,-549,-203,,,,
+4237,HD72,6237,Hungarian Datum 1972,6237,9122,7036,8901,1,0,6422,1242,1,9603,52.17,-71.82,-14.9,,,,
+4238,ID74,6238,Indonesian Datum 1974,6238,9122,7021,8901,1,0,6422,1248,1,9603,-24,-15,5,,,,
+4239,Indian 1954,6239,Indian 1954,6239,9122,7015,8901,1,0,6422,1153,0,9603,217,823,299,,,,
+4240,Indian 1975,6240,Indian 1975,6240,9122,7015,8901,1,0,6422,1304,1,9603,210,814,289,,,,
+4241,Jamaica 1875,6241,Jamaica 1875,6241,9122,7034,8901,1,0,6422,,0,,,,,,,,
+4242,JAD69,6242,Jamaica 1969,6242,9122,7008,8901,1,0,6422,1084,1,9603,70,207,389.5,,,,
+4243,Kalianpur 1880,6243,Kalianpur 1880,6243,9122,7042,8901,1,0,6422,,0,,,,,,,,
+4244,Kandawala,6244,Kandawala,6244,9122,7015,8901,1,0,6422,1157,0,9603,-97,787,86,,,,
+4245,Kertau 1968,6245,Kertau 1968,6245,9122,7018,8901,1,0,6422,1158,0,9603,-11,851,5,,,,
+4246,KOC,6246,Kuwait Oil Company,6246,9122,7012,8901,1,0,6422,1059,0,9603,-294.7,-200.1,525.5,,,,
+4247,La Canoa,6247,La Canoa,6247,9122,7022,8901,1,0,6422,1516,0,9603,-273.5,110.6,-357.9,,,,
+4248,PSAD56,6248,Provisional South American Datum 1956,6248,9122,7022,8901,1,0,6422,1201,1,9603,-288,175,-376,,,,
+4249,Lake,6249,Lake,6249,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4250,Leigon,6250,Leigon,6250,9122,7012,8901,1,0,6422,1159,0,9603,-130,29,364,,,,
+4251,Liberia 1964,6251,Liberia 1964,6251,9122,7012,8901,1,0,6422,1160,0,9603,-90,40,88,,,,
+4252,Lome,6252,Lome,6252,9122,7011,8901,1,0,6422,,0,,,,,,,,
+4253,Luzon 1911,6253,Luzon 1911,6253,9122,7008,8901,1,0,6422,1161,1,9603,-133,-77,-51,,,,
+4254,Hito XVIII 1963,6254,Hito XVIII 1963,6254,9122,7022,8901,1,0,6422,1892,1,9603,16,196,93,,,,
+4255,Herat North,6255,Herat North,6255,9122,7022,8901,1,0,6422,1246,0,9603,-333,-222,114,,,,
+4256,Mahe 1971,6256,Mahe 1971,6256,9122,7012,8901,1,0,6422,1164,0,9603,41,-220,-134,,,,
+4257,Makassar,6257,Makassar,6257,9122,7004,8901,1,0,6422,1837,0,9603,-587.8,519.75,145.76,,,,
+4258,ETRS89,6258,European Terrestrial Reference System 1989,6258,9122,7019,8901,1,0,6422,1149,1,9603,0,0,0,,,,
+4259,Malongo 1987,6259,Malongo 1987,6259,9122,7022,8901,1,0,6422,1557,1,9603,-254.1,-5.36,-100.29,,,,
+4260,Manoca,6260,Manoca,6260,9108,7012,8901,1,1,6402,1316,0,9603,-70.9,-151.8,-41.4,,,,
+4261,Merchich,6261,Merchich,6261,9122,7011,8901,1,0,6422,1166,0,9603,31,146,47,,,,
+4262,Massawa,6262,Massawa,6262,9122,7004,8901,1,0,6422,1165,0,9603,639,405,60,,,,
+4263,Minna,6263,Minna,6263,9122,7012,8901,1,0,6422,1168,1,9603,-92,-93,122,,,,
+4264,Mhast,6264,Mhast,6264,9122,7022,8901,1,1,6422,1329,0,9603,-252.95,-4.11,-96.38,,,,
+4265,Monte Mario,6265,Monte Mario,6265,9122,7022,8901,1,0,6422,1660,1,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68
+4266,"M'poraloko",6266,"M'poraloko",6266,9122,7011,8901,1,0,6422,1163,1,9603,-74,-130,42,,,,
+4267,NAD27,6267,North American Datum 1927,6267,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4268,NAD27 Michigan,6268,NAD27 Michigan,6268,9122,7009,8901,1,1,6422,,0,,,,,,,,
+4269,NAD83,6269,North American Datum 1983,6269,9122,7019,8901,1,0,6422,1188,1,9603,0,0,0,,,,
+4270,Nahrwan 1967,6270,Nahrwan 1967,6270,9122,7012,8901,1,0,6422,1191,1,9603,-249,-156,381,,,,
+4271,Naparima 1972,6271,Naparima 1972,6271,9122,7022,8901,1,0,6422,1192,1,9603,-10,375,165,,,,
+4272,NZGD49,6272,New Zealand Geodetic Datum 1949,6272,9122,7022,8901,1,0,6422,1564,1,9607,59.47,-5.04,187.44,-0.47,0.1,-1.024,-4.5993
+4273,NGO 1948,6273,NGO 1948,6273,9122,7005,8901,1,0,6422,1654,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21
+4274,Datum 73,6274,Datum 73,6274,9122,7022,8901,1,0,6422,1983,1,9603,-223.237,110.193,36.649,,,,
+4275,NTF,6275,Nouvelle Triangulation Francaise,6275,9122,7011,8901,1,0,6422,1193,0,9603,-168,-60,320,,,,
+4276,NSWC 9Z-2,6276,NSWC 9Z-2,6276,9122,7025,8901,1,0,6422,,0,,,,,,,,
+4277,OSGB 1936,6277,OSGB 1936,6277,9122,7001,8901,1,0,6422,1314,1,9606,446.448,-125.157,542.06,0.15,0.247,0.842,-20.489
+4278,OSGB70,6278,"OSGB 1970 (SN)",6278,9122,7001,8901,1,0,6422,,0,,,,,,,,
+4279,"OS(SN)80",6279,"OS (SN) 1980",6279,9122,7001,8901,1,0,6422,,0,,,,,,,,
+4280,Padang,6280,Padang 1884,6280,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4281,Palestine 1923,6281,Palestine 1923,6281,9122,7010,8901,1,0,6422,1074,0,9606,-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1
+4282,Pointe Noire,6282,Congo 1960 Pointe Noire,6282,9122,7011,8901,1,0,6422,1200,1,9603,-148,51,-291,,,,
+4283,GDA94,6283,Geocentric Datum of Australia 1994,6283,9122,7019,8901,1,0,6422,1150,0,9603,0,0,0,,,,
+4284,Pulkovo 1942,6284,Pulkovo 1942,6284,9122,7024,8901,1,0,6422,1267,1,9607,23.92,-141.27,-80.9,0,-0.35,-0.82,-0.12
+4285,Qatar 1974,6285,Qatar 1974,6285,9122,7022,8901,1,0,6422,1562,1,9603,-128.16,-282.42,21.93,,,,
+4286,Qatar 1948,6286,Qatar 1948,6286,9122,7020,8901,1,0,6422,,0,,,,,,,,
+4287,Qornoq,6287,Qornoq,6287,9108,7022,8901,1,1,6402,1211,0,9603,164,138,-189,,,,
+4288,Loma Quintana,6288,Loma Quintana,6288,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4289,Amersfoort,6289,Amersfoort,6289,9122,7004,8901,1,0,6422,15934,1,9607,565.2369,50.0087,465.658,0.406857,-0.350733,1.87035,4.0812
+4291,SAD69,6291,South American Datum 1969,6291,9108,7036,8901,1,1,6402,1212,1,9603,-57,1,-41,,,,
+4292,Sapper Hill 1943,6292,Sapper Hill 1943,6292,9122,7022,8901,1,0,6422,1225,0,9603,-355,21,72,,,,
+4293,Schwarzeck,6293,Schwarzeck,6293,9122,7046,8901,1,0,6422,1226,1,9603,616,97,-251,,,,
+4294,Segora,6294,Segora,6294,9108,7004,8901,1,1,6402,1286,1,9603,-403,684,41,,,,
+4295,Serindung,6295,Serindung,6295,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4296,Sudan,6296,Sudan,6296,9108,7011,8901,1,1,6402,,0,,,,,,,,
+4297,Tananarive,6297,Tananarive 1925,6297,9122,7022,8901,1,0,6422,1227,1,9603,-189,-242,-91,,,,
+4298,Timbalai 1948,6298,Timbalai 1948,6298,9122,7016,8901,1,0,6422,1228,1,9603,-679,669,-48,,,,
+4299,TM65,6299,TM65,6299,9122,7002,8901,1,0,6422,1641,1,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15
+4300,TM75,6300,Geodetic Datum of 1965,6300,9122,7002,8901,1,0,6422,1954,1,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15
+4301,Tokyo,6301,Tokyo,6301,9122,7004,8901,1,0,6422,15484,1,9603,-146.414,507.337,680.507,,,,
+4302,Trinidad 1903,6302,Trinidad 1903,6302,9122,7007,8901,1,0,6422,1296,1,9603,-61.702,284.488,472.052,,,,
+4303,"TC(1948)",6303,Trucial Coast 1948,6303,9122,7020,8901,1,0,6422,,0,,,,,,,,
+4304,Voirol 1875,6304,Voirol 1875,6304,9122,7011,8901,1,0,6422,1294,0,9603,-73,-247,227,,,,
+4306,Bern 1938,6306,Bern 1938,6306,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4307,Nord Sahara 1959,6307,Nord Sahara 1959,6307,9122,7012,8901,1,0,6422,5660,1,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547
+4308,RT38,6308,Stockholm 1938,6308,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4309,Yacare,6309,Yacare,6309,9122,7022,8901,1,0,6422,1234,1,9603,-155,171,37,,,,
+4310,Yoff,6310,Yoff,6310,9122,7011,8901,1,0,6422,6903,0,9603,-30,190,89,,,,
+4311,Zanderij,6311,Zanderij,6311,9122,7022,8901,1,0,6422,1235,0,9603,-265,120,-358,,,,
+4312,MGI,6312,Militar-Geographische Institut,6312,9122,7004,8901,1,0,6422,1618,1,9606,577.326,90.129,463.919,5.137,1.474,5.297,2.4232
+4313,Belge 1972,6313,Reseau National Belge 1972,6313,9122,7022,8901,1,0,6422,15929,1,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,-1.2747
+4314,DHDN,6314,Deutsches Hauptdreiecksnetz,6314,9122,7004,8901,1,0,6422,1777,1,9606,598.1,73.7,418.2,0.202,0.045,-2.455,6.7
+4315,Conakry 1905,6315,Conakry 1905,6315,9122,7011,8901,1,0,6422,1517,0,9603,-23,259,-9,,,,
+4316,Dealul Piscului 1930,6316,Dealul Piscului 1930,6316,9122,7022,8901,1,0,6422,1995,1,9603,103.25,-100.4,-307.19,,,,
+4317,Dealul Piscului 1970,6317,Dealul Piscului 1970,6317,9122,7024,8901,1,1,6422,1097,1,9603,28,-121,-77,,,,
+4318,NGN,6318,National Geodetic Network,6318,9122,7030,8901,1,0,6422,1060,0,9603,-3.2,-5.7,2.8,,,,
+4319,KUDAMS,6319,Kuwait Utility,6319,9122,7019,8901,1,0,6422,1061,1,9603,-20.8,11.3,2.4,,,,
+4322,WGS 72,6322,World Geodetic System 1972,6322,9122,7043,8901,1,0,6422,1237,1,9606,0,0,4.5,0,0,0.554,0.2263
+4324,WGS 72BE,6324,WGS 72 Transit Broadcast Ephemeris,6324,9122,7043,8901,1,0,6422,1240,0,9606,0,0,1.9,0,0,0.814,-0.38
+4326,WGS 84,6326,World Geodetic System 1984,6326,9122,7030,8901,1,0,6422,,0,,,,,,,,
+4463,RGSPM06,1038,Reseau Geodesique de Saint Pierre et Miquelon 2006,1038,9122,7019,8901,1,0,6422,4477,0,9603,0,0,0,,,,
+4470,RGM04,1036,Reseau Geodesique de Mayotte 2004,1036,9122,7019,8901,1,0,6422,4476,0,9603,0,0,0,,,,
+4475,Cadastre 1997,1037,Cadastre 1997,1037,9122,7022,8901,1,0,6422,4290,0,9603,-381.788,-57.501,-256.673,,,,
+4483,Mexico ITRF92,1042,Mexico ITRF92,1042,9122,7019,8901,1,0,6422,4832,0,9603,0,0,0,,,,
+4490,China Geodetic Coordinate System 2000,1043,China 2000,1043,9122,1024,8901,1,0,6422,,0,,,,,,,,
+4555,New Beijing,1045,New Beijing,1045,9122,7024,8901,1,0,6422,,0,,,,,,,,
+4558,RRAF 1991,1047,Reseau de Reference des Antilles Francaises 1991,1047,9122,7019,8901,1,0,6422,4560,0,9603,0,0,0,,,,
+4600,Anguilla 1957,6600,Anguilla 1957,6600,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4601,Antigua 1943,6601,Antigua 1943,6601,9122,7012,8901,1,0,6422,1441,1,9603,-255,-15,71,,,,
+4602,Dominica 1945,6602,Dominica 1945,6602,9122,7012,8901,1,0,6422,1442,0,9603,725,685,536,,,,
+4603,Grenada 1953,6603,Grenada 1953,6603,9122,7012,8901,1,0,6422,1443,0,9603,72,213.7,93,,,,
+4604,Montserrat 1958,6604,Montserrat 1958,6604,9122,7012,8901,1,0,6422,1444,0,9603,174,359,365,,,,
+4605,St. Kitts 1955,6605,St. Kitts 1955,6605,9122,7012,8901,1,0,6422,1445,1,9603,9,183,236,,,,
+4606,St. Lucia 1955,6606,St. Lucia 1955,6606,9122,7012,8901,1,0,6422,1446,1,9603,-149,128,296,,,,
+4607,St. Vincent 1945,6607,St. Vincent 1945,6607,9122,7012,8901,1,0,6422,1959,0,9603,195.671,332.517,274.607,,,,
+4608,"NAD27(76)",6608,"North American Datum 1927 (1976)",6608,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4609,"NAD27(CGQ77)",6609,"North American Datum 1927 (CGQ77)",6609,9122,7008,8901,1,0,6422,,0,,,,,,,,
+4610,Xian 1980,6610,Xian 1980,6610,9122,7049,8901,1,0,6422,,0,,,,,,,,
+4611,Hong Kong 1980,6611,Hong Kong 1980,6611,9122,7022,8901,1,0,6422,1825,0,9606,-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246
+4612,JGD2000,6612,Japanese Geodetic Datum 2000,6612,9122,7019,8901,1,0,6422,1826,0,9603,0,0,0,,,,
+4613,Segara,6613,Gunung Segara,6613,9122,7004,8901,1,0,6422,1897,1,9603,-403,684,41,,,,
+4614,QND95,6614,Qatar National Datum 1995,6614,9122,7022,8901,1,0,6422,1840,0,9606,-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065
+4615,Porto Santo,6615,Porto Santo 1936,6615,9122,7022,8901,1,0,6422,1888,0,9603,-499,-249,314,,,,
+4616,Selvagem Grande,6616,Selvagem Grande,6616,9122,7022,8901,1,0,6422,1965,1,9603,-289,-124,60,,,,
+4617,"NAD83(CSRS)",6140,NAD83 Canadian Spatial Reference System,6140,9122,7019,8901,1,0,6422,1842,1,9603,0,0,0,,,,
+4618,SAD69,6618,South American Datum 1969,6618,9122,7050,8901,1,0,6422,1877,1,9603,-66.87,4.37,-38.52,,,,
+4619,SWEREF99,6619,SWEREF99,6619,9122,7019,8901,1,0,6422,1879,0,9603,0,0,0,,,,
+4620,Point 58,6620,Point 58,6620,9122,7012,8901,1,0,6422,1880,0,9603,-106,-129,165,,,,
+4621,Fort Marigot,6621,Fort Marigot,6621,9122,7022,8901,1,0,6422,1903,0,9603,137,248,-430,,,,
+4622,Guadeloupe 1948,6622,Guadeloupe 1948,6622,9122,7022,8901,1,0,6422,1904,1,9603,-467,-16,-300,,,,
+4623,CSG67,6623,Centre Spatial Guyanais 1967,6623,9122,7022,8901,1,0,6422,1906,0,9603,-186,230,110,,,,
+4624,RGFG95,6624,Reseau Geodesique Francais Guyane 1995,6624,9122,7019,8901,1,0,6422,4840,1,9603,0,0,0,,,,
+4625,Martinique 1938,6625,Martinique 1938,6625,9122,7022,8901,1,0,6422,1909,1,9603,186,482,151,,,,
+4626,Reunion 1947,6626,Reunion 1947,6626,9122,7022,8901,1,0,6422,15751,1,9603,94,-948,-1262,,,,
+4627,RGR92,6627,Reseau Geodesique de la Reunion 1992,6627,9122,7019,8901,1,0,6422,1912,0,9603,0,0,0,,,,
+4628,Tahiti 52,6628,Tahiti 52,6628,9122,7022,8901,1,0,6422,1924,0,9603,162,117,154,,,,
+4629,Tahaa 54,6629,Tahaa 54,6629,9122,7022,8901,1,0,6422,15770,1,9607,72.438,345.918,79.486,-1.6045,-0.8823,-0.5565,1.3746
+4630,IGN72 Nuku Hiva,6630,IGN72 Nuku Hiva,6630,9122,7022,8901,1,0,6422,1914,1,9603,84,274,65,,,,
+4631,K0 1949,6631,K0 1949,6631,9122,7022,8901,1,1,6422,1915,0,9603,145,-187,103,,,,
+4632,Combani 1950,6632,Combani 1950,6632,9122,7022,8901,1,0,6422,1916,0,9603,-382,-59,-262,,,,
+4633,IGN56 Lifou,6633,IGN56 Lifou,6633,9122,7022,8901,1,0,6422,15902,1,9603,335.47,222.58,-230.94,,,,
+4634,IGN72 Grand Terre,6634,IGN72 Grande Terre,6634,9108,7022,8901,1,1,6402,1918,1,9603,-13,-348,292,,,,
+4635,ST87 Ouvea,6635,ST87 Ouvea,6635,9122,7022,8901,1,1,6422,1919,0,9606,-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798
+4636,Petrels 1972,6636,Petrels 1972,6636,9122,7022,8901,1,0,6422,1921,0,9603,365,194,166,,,,
+4637,Perroud 1950,6637,Pointe Geologie Perroud 1950,6637,9122,7022,8901,1,0,6422,1922,0,9603,325,154,172,,,,
+4638,Saint Pierre et Miquelon 1950,6638,Saint Pierre et Miquelon 1950,6638,9122,7008,8901,1,0,6422,8270,1,9603,11.363,424.148,373.13,,,,
+4639,MOP78,6639,MOP78,6639,9122,7022,8901,1,0,6422,15847,1,9603,253,-132,-127,,,,
+4640,RRAF 1991,6640,Reseau de Reference des Antilles Francaises 1991,6640,9122,7030,8901,1,1,6422,1934,0,9603,0,0,0,,,,
+4641,IGN53 Mare,6641,IGN53 Mare,6641,9122,7022,8901,1,0,6422,15901,1,9603,287.58,177.78,-135.41,,,,
+4642,ST84 Ile des Pins,6642,ST84 Ile des Pins,6642,9122,7022,8901,1,0,6422,15848,1,9603,-13,-348,292,,,,
+4643,ST71 Belep,6643,ST71 Belep,6643,9122,7022,8901,1,0,6422,1931,0,9606,-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002
+4644,NEA74 Noumea,6644,NEA74 Noumea,6644,9122,7022,8901,1,0,6422,15904,1,9603,-10.18,-350.43,291.37,,,,
+4645,RGNC 1991,6645,Reseau Geodesique Nouvelle Caledonie 1991,6645,9122,7022,8901,1,1,6422,1920,0,9603,0,0,0,,,,
+4646,Grand Comoros,6646,Grand Comoros,6646,9122,7022,8901,1,0,6422,5521,0,9603,-963,510,-359,,,,
+4657,Reykjavik 1900,6657,Reykjavik 1900,6657,9122,7051,8901,1,0,6422,1994,0,9603,-28,199,5,,,,
+4658,Hjorsey 1955,6658,Hjorsey 1955,6658,9122,7022,8901,1,0,6422,6909,1,9603,-73,47,-83,,,,
+4659,ISN93,6659,Islands Net 1993,6659,9122,7019,8901,1,0,6422,1952,0,9603,0,0,0,,,,
+4660,Helle 1954,6660,Helle 1954,6660,9122,7022,8901,1,0,6422,1957,0,9606,982.6087,552.753,-540.873,6.6816266,-31.6114924,-19.84816,16.805
+4661,LKS92,6661,Latvia 1992,6661,9122,7019,8901,1,0,6422,1958,0,9603,0,0,0,,,,
+4662,IGN72 Grande Terre,6634,IGN72 Grande Terre,6634,9122,7022,8901,1,0,6422,15903,1,9603,-11.64,-348.6,291.98,,,,
+4663,Porto Santo 1995,6663,Porto Santo 1995,6663,9122,7022,8901,1,0,6422,1966,1,9603,-502.862,-247.438,312.724,,,,
+4664,Azores Oriental 1995,6664,Azores Oriental Islands 1995,6664,9122,7022,8901,1,0,6422,1970,1,9603,-204.619,140.176,55.226,,,,
+4665,Azores Central 1995,6665,Azores Central Islands 1995,6665,9122,7022,8901,1,0,6422,1980,1,9603,-106.226,166.366,-37.893,,,,
+4666,Lisbon 1890,6666,Lisbon 1890,6666,9122,7004,8901,1,0,6422,1986,1,9603,508.088,-191.042,565.223,,,,
+4667,IKBD-92,6667,Iraq-Kuwait Boundary Datum 1992,6667,9122,7030,8901,1,0,6422,1993,0,9603,0,0,0,,,,
+4668,ED79,6668,European Datum 1979,6668,9122,7022,8901,1,0,6422,15752,0,9603,-86,-98,-119,,,,
+4669,LKS94,6126,"Lithuania 1994 (ETRS89)",6126,9122,7019,8901,1,0,6422,1283,0,9603,0,0,0,,,,
+4670,IGM95,6670,Istituto Geografico Militaire 1995,6670,9122,7030,8901,1,0,6422,1099,0,9603,0,0,0,,,,
+4671,Voirol 1879,6671,Voirol 1879,6671,9122,7011,8901,1,0,6422,,0,,,,,,,,
+4672,Chatham Islands 1971,6672,Chatham Islands Datum 1971,6672,9122,7022,8901,1,0,6422,1080,0,9603,175,-38,113,,,,
+4673,Chatham Islands 1979,6673,Chatham Islands Datum 1979,6673,9122,7022,8901,1,0,6422,1081,0,9607,174.05,-25.49,112.57,0,0,-0.554,0.2263
+4674,SIRGAS 2000,6674,Sistema de Referencia Geocentrico para las AmericaS 2000,6674,9122,7019,8901,1,0,6422,15894,0,9603,0,0,0,,,,
+4675,Guam 1963,6675,Guam 1963,6675,9122,7008,8901,1,0,6422,1070,0,9603,-100,-248,259,,,,
+4676,Vientiane 1982,6676,Vientiane 1982,6676,9122,7024,8901,1,0,6422,,0,,,,,,,,
+4677,Lao 1993,6677,Lao 1993,6677,9122,7024,8901,1,0,6422,,0,,,,,,,,
+4678,Lao 1997,6678,Lao National Datum 1997,6678,9122,7024,8901,1,0,6422,1065,0,9603,44.585,-131.212,-39.544,,,,
+4679,Jouik 1961,6679,Jouik 1961,6679,9122,7012,8901,1,0,6422,15870,0,9603,-80.01,253.26,291.19,,,,
+4680,Nouakchott 1965,6680,Nouakchott 1965,6680,9122,7012,8901,1,0,6422,15709,0,9603,124.5,-63.5,-281,,,,
+4681,Mauritania 1999,6681,Mauritania 1999,6681,9122,7012,8901,1,1,6422,,0,,,,,,,,
+4682,Gulshan 303,6682,Gulshan 303,6682,9122,7015,8901,1,0,6422,15779,1,9603,283.7,735.9,261.1,,,,
+4683,PRS92,6683,Philippine Reference System 1992,6683,9122,7008,8901,1,0,6422,15708,0,9607,-127.62,-67.24,-47.04,3.068,-4.903,-1.578,-1.06
+4684,Gan 1970,6684,Gan 1970,6684,9122,7022,8901,1,0,6422,15713,0,9603,-133,-321,50,,,,
+4685,Gandajika,6685,Gandajika,6685,9122,7022,8901,1,1,6422,,0,,,,,,,,
+4686,MAGNA-SIRGAS,6686,Marco Geocentrico Nacional de Referencia,6686,9122,7019,8901,1,0,6422,15738,0,9603,0,0,0,,,,
+4687,RGPF,6687,Reseau Geodesique de la Polynesie Francaise,6687,9122,7019,8901,1,0,6422,15832,1,9607,0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093
+4688,Fatu Iva 72,6688,Fatu Iva 72,6688,9122,7022,8901,1,0,6422,15772,0,9607,347.103,1078.125,2623.922,33.8875,-70.6773,9.3943,186.074
+4689,IGN63 Hiva Oa,6689,IGN63 Hiva Oa,6689,9122,7022,8901,1,0,6422,15773,1,9607,410.721,55.049,80.746,-2.5779,-2.3514,-0.6664,17.3311
+4690,Tahiti 79,6690,Tahiti 79,6690,9122,7022,8901,1,0,6422,4835,0,9607,221.525,152.948,176.768,2.3847,1.3896,0.877,11.4741
+4691,Moorea 87,6691,Moorea 87,6691,9122,7022,8901,1,0,6422,15769,0,9607,215.525,149.593,176.229,3.2624,1.692,1.1571,10.4773
+4692,Maupiti 83,6692,Maupiti 83,6692,9122,7022,8901,1,0,6422,15771,0,9603,217.037,86.959,23.956,,,,
+4693,Nakhl-e Ghanem,6693,Nakhl-e Ghanem,6693,9122,7030,8901,1,0,6422,15746,0,9603,0,-0.15,0.68,,,,
+4694,POSGAR 94,6694,Posiciones Geodesicas Argentinas 1994,6694,9122,7030,8901,1,0,6422,1210,0,9603,0,0,0,,,,
+4695,Katanga 1955,6695,Katanga 1955,6695,9122,7008,8901,1,0,6422,4066,0,9603,-103.746,-9.614,-255.95,,,,
+4696,Kasai 1953,6696,Kasai 1953,6696,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4697,IGC 1962 6th Parallel South,6697,IGC 1962 Arc of the 6th Parallel South,6697,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4698,IGN 1962 Kerguelen,6698,IGN 1962 Kerguelen,6698,9122,7022,8901,1,0,6422,15850,0,9603,145,-187,103,,,,
+4699,Le Pouce 1934,6699,Le Pouce 1934,6699,9122,7012,8901,1,0,6422,15784,0,9603,-770.1,158.4,-498.2,,,,
+4700,IGN Astro 1960,6700,IGN Astro 1960,6700,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4701,IGCB 1955,6701,Institut Geographique du Congo Belge 1955,6701,9122,7012,8901,1,0,6422,15787,0,9603,-79.9,-158,-168.9,,,,
+4702,Mauritania 1999,6702,Mauritania 1999,6702,9122,7019,8901,1,0,6422,15860,0,9603,0,0,0,,,,
+4703,Mhast 1951,6703,Missao Hidrografico Angola y Sao Tome 1951,6703,9122,7012,8901,1,0,6422,,0,,,,,,,,
+4704,"Mhast (onshore)",6704,"Mhast (onshore)",6704,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4705,"Mhast (offshore)",6705,"Mhast (offshore)",6705,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4706,Egypt Gulf of Suez S-650 TL,6706,Egypt Gulf of Suez S-650 TL,6706,9122,7020,8901,1,0,6422,15846,0,9603,-146.21,112.63,4.05,,,,
+4707,Tern Island 1961,6707,Tern Island 1961,6707,9122,7022,8901,1,0,6422,15795,0,9603,114,-116,-333,,,,
+4708,Cocos Islands 1965,6708,Cocos Islands 1965,6708,9122,7003,8901,1,0,6422,15794,0,9603,-491,-22,435,,,,
+4709,Iwo Jima 1945,6709,Iwo Jima 1945,6709,9122,7022,8901,1,0,6422,15796,0,9603,145,75,-272,,,,
+4710,Astro DOS 71,6710,Astro DOS 71,6710,9122,7022,8901,1,0,6422,15798,1,9603,-320,550,-494,,,,
+4711,Marcus Island 1952,6711,Marcus Island 1952,6711,9122,7022,8901,1,0,6422,15799,0,9603,124,-234,-25,,,,
+4712,Ascension Island 1958,6712,Ascension Island 1958,6712,9122,7022,8901,1,0,6422,15797,0,9603,-205,107,53,,,,
+4713,Ayabelle Lighthouse,6713,Ayabelle Lighthouse,6713,9122,7012,8901,1,0,6422,6907,1,9603,-77,-128,142,,,,
+4714,Bellevue,6714,Bellevue,6714,9122,7022,8901,1,0,6422,15801,0,9603,-127,-769,472,,,,
+4715,Camp Area Astro,6715,Camp Area Astro,6715,9122,7022,8901,1,0,6422,15802,0,9603,-104,-129,239,,,,
+4716,Phoenix Islands 1966,6716,Phoenix Islands 1966,6716,9122,7022,8901,1,0,6422,15803,0,9603,298,-304,-375,,,,
+4717,Cape Canaveral,6717,Cape Canaveral,6717,9122,7008,8901,1,0,6422,15804,0,9603,-2,151,181,,,,
+4718,Solomon 1968,6718,Solomon 1968,6718,9122,7022,8901,1,0,6422,15805,1,9603,230,-199,-752,,,,
+4719,Easter Island 1967,6719,Easter Island 1967,6719,9122,7022,8901,1,0,6422,15806,0,9603,211,147,111,,,,
+4720,Fiji 1986,6720,Fiji Geodetic Datum 1986,6720,9122,7043,8901,1,0,6422,15876,1,9606,0,0,4.5,0,0,0.554,0.2263
+4721,Fiji 1956,6721,Fiji 1956,6721,9122,7022,8901,1,0,6422,15875,0,9603,265.025,384.929,-194.046,,,,
+4722,South Georgia 1968,6722,South Georgia 1968,6722,9122,7022,8901,1,0,6422,15813,0,9603,-794,119,-298,,,,
+4723,GCGD59,6723,Grand Cayman Geodetic Datum 1959,6723,9122,7008,8901,1,0,6422,6142,1,9607,-179.483,-69.379,-27.584,7.862,-8.163,-6.042,-13.925
+4724,Diego Garcia 1969,6724,Diego Garcia 1969,6724,9122,7022,8901,1,0,6422,15808,0,9603,208,-435,-229,,,,
+4725,Johnston Island 1961,6725,Johnston Island 1961,6725,9122,7022,8901,1,0,6422,15809,0,9603,189,-79,-202,,,,
+4726,SIGD61,6726,Sister Islands Geodetic Datum 1961,6726,9122,7008,8901,1,0,6422,6143,1,9607,8.853,-52.644,180.304,0.393,2.323,-2.96,-24.081
+4727,Midway 1961,6727,Midway 1961,6727,9122,7022,8901,1,0,6422,15818,1,9603,403,-81,277,,,,
+4728,Pico de las Nieves 1984,6728,Pico de las Nieves 1984,6728,9122,7022,8901,1,0,6422,15815,0,9603,-307,-92,127,,,,
+4729,Pitcairn 1967,6729,Pitcairn 1967,6729,9122,7022,8901,1,0,6422,15819,0,9603,185,165,42,,,,
+4730,Santo 1965,6730,Santo 1965,6730,9122,7022,8901,1,0,6422,15820,0,9603,170,42,84,,,,
+4731,Viti Levu 1916,6731,Viti Levu 1916,6731,9122,7012,8901,1,1,6422,15821,0,9603,51,391,-36,,,,
+4732,Marshall Islands 1960,6732,Marshall Islands 1960,6732,9122,7053,8901,1,0,6422,15822,0,9603,102,52,-38,,,,
+4733,Wake Island 1952,6733,Wake Island 1952,6733,9122,7022,8901,1,0,6422,15823,0,9603,276,-57,149,,,,
+4734,Tristan 1968,6734,Tristan 1968,6734,9122,7022,8901,1,0,6422,15816,0,9603,-632,438,-609,,,,
+4735,Kusaie 1951,6735,Kusaie 1951,6735,9122,7022,8901,1,0,6422,15810,0,9603,647,1777,-1124,,,,
+4736,Deception Island,6736,Deception Island,6736,9122,7012,8901,1,0,6422,15812,0,9603,260,12,-147,,,,
+4737,Korea 2000,6737,Geocentric datum of Korea,6737,9122,7019,8901,1,0,6422,15831,0,9603,0,0,0,,,,
+4738,Hong Kong 1963,6738,Hong Kong 1963,6738,9122,7007,8901,1,0,6422,,0,,,,,,,,
+4739,"Hong Kong 1963(67)",6739,"Hong Kong 1963(67)",6739,9122,7022,8901,1,0,6422,15842,0,9603,-156,-271,-189,,,,
+4740,PZ-90,6740,Parametry Zemli 1990,6740,9122,7054,8901,1,0,6422,15843,1,9607,0,0,1.5,0,0,-0.076,0
+4741,FD54,6741,Faroe Datum 1954,6741,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4742,GDM2000,6742,Geodetic Datum of Malaysia 2000,6742,9122,7019,8901,1,0,6422,,0,,,,,,,,
+4743,Karbala 1979,6743,Karbala 1979,6743,9122,7012,8901,1,0,6422,5078,1,9603,70.995,-335.916,262.898,,,,
+4744,Nahrwan 1934,6744,Nahrwan 1934,6744,9122,7012,8901,1,0,6422,7033,0,9603,-242.2,-144.9,370.3,,,,
+4745,"RD/83",6745,"Rauenberg Datum/83",6745,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4746,"PD/83",6746,"Potsdam Datum/83",6746,9122,7004,8901,1,0,6422,,0,,,,,,,,
+4747,GR96,6747,Greenland 1996,6747,9122,7019,8901,1,0,6422,15879,0,9603,0,0,0,,,,
+4748,Vanua Levu 1915,6748,Vanua Levu 1915,6748,9122,7055,8901,1,0,6422,15878,0,9603,51,391,-36,,,,
+4749,RGNC91-93,6749,Reseau Geodesique de Nouvelle Caledonie 91-93,6749,9122,7019,8901,1,0,6422,15880,0,9603,0,0,0,,,,
+4750,ST87 Ouvea,6750,ST87 Ouvea,6750,9122,7030,8901,1,0,6422,15881,0,9603,-56.263,16.136,-22.856,,,,
+4751,"Kertau (RSO)",6751,"Kertau (RSO)",6751,9122,7056,8901,1,0,6422,,0,,,,,,,,
+4752,Viti Levu 1912,6752,Viti Levu 1912,6752,9122,7055,8901,1,0,6422,6895,1,9603,98,390,-22,,,,
+4753,fk89,6753,fk89,6753,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4754,LGD2006,6754,Libyan Geodetic Datum 2006,6754,9122,7022,8901,1,0,6422,15908,0,9603,-208.4058,-109.8777,-2.5764,,,,
+4755,DGN95,6755,Datum Geodesi Nasional 1995,6755,9122,7030,8901,1,0,6422,15912,0,9603,0,0,0,,,,
+4756,VN-2000,6756,Vietnam 2000,6756,9122,7030,8901,1,0,6422,6960,1,9607,-191.90441429,-39.30318279,-111.45032835,-0.00928836,0.01975479,-0.00427372,0.252906278
+4757,SVY21,6757,SVY21,6757,9122,7030,8901,1,0,6422,,0,,,,,,,,
+4758,JAD2001,6758,Jamaica 2001,6758,9122,7030,8901,1,0,6422,15925,0,9603,0,0,0,,,,
+4759,"NAD83(NSRS2007)",6759,"NAD83 (National Spatial Reference System 2007)",6759,9122,7019,8901,1,0,6422,15931,0,9603,0,0,0,,,,
+4760,WGS 66,6760,World Geodetic System 1966,6760,9122,7025,8901,1,0,6422,,0,,,,,,,,
+4761,HTRS96,6761,Croatian Terrestrial Reference System,6761,9122,7019,8901,1,0,6422,15967,0,9603,0,0,0,,,,
+4762,BDA2000,6762,Bermuda 2000,6762,9122,7030,8901,1,0,6422,15971,0,9603,0,0,0,,,,
+4763,Pitcairn 2006,6763,Pitcairn 2006,6763,9122,7030,8901,1,0,6422,15972,0,9603,0,0,0,,,,
+4764,RSRGD2000,6764,Ross Sea Region Geodetic Datum 2000,6764,9122,7019,8901,1,0,6422,15974,0,9603,0,0,0,,,,
+4765,Slovenia 1996,6765,Slovenia Geodetic Datum 1996,6765,9122,7019,8901,1,0,6422,15976,0,9603,0,0,0,,,,
+4801,"Bern 1898 (Bern)",6801,"CH1903 (Bern)",6149,9122,7004,8907,1,0,6422,1510,1,9603,674.374,15.056,405.346,,,,
+4802,"Bogota 1975 (Bogota)",6802,"Bogota 1975 (Bogota)",6218,9122,7022,8904,1,0,6422,1125,1,9603,307,304,-318,,,,
+4803,"Lisbon (Lisbon)",6803,"Lisbon 1937 (Lisbon)",6207,9122,7022,8902,1,0,6422,1984,1,9603,-304.046,-60.576,103.64,,,,
+4804,"Makassar (Jakarta)",6804,"Makassar (Jakarta)",6257,9122,7004,8908,1,0,6422,1837,0,9603,-587.8,519.75,145.76,,,,
+4805,"MGI (Ferro)",6805,"Militar-Geographische Institut (Ferro)",1031,9122,7004,8909,1,0,6422,3962,1,9603,682,-203,480,,,,
+4806,"Monte Mario (Rome)",6806,"Monte Mario (Rome)",6265,9122,7022,8906,1,0,6422,1660,1,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68
+4807,"NTF (Paris)",6807,"Nouvelle Triangulation Francaise (Paris)",6275,9105,7011,8903,1,0,6403,1193,0,9603,-168,-60,320,,,,
+4808,"Padang (Jakarta)",6808,"Padang 1884 (Jakarta)",6280,9122,7004,8908,1,0,6422,,0,,,,,,,,
+4809,"Belge 1950 (Brussels)",6809,"Reseau National Belge 1950 (Brussels)",6215,9122,7022,8910,1,0,6422,,0,,,,,,,,
+4810,"Tananarive (Paris)",6810,"Tananarive 1925 (Paris)",6297,9105,7022,8903,1,0,6403,1227,1,9603,-189,-242,-91,,,,
+4811,"Voirol 1875 (Paris)",6811,"Voirol 1875 (Paris)",6304,9105,7011,8903,1,0,6403,1294,0,9603,-73,-247,227,,,,
+4813,"Batavia (Jakarta)",6813,"Batavia (Jakarta)",6211,9122,7004,8908,1,0,6422,1123,1,9603,-377,681,-50,,,,
+4814,"RT38 (Stockholm)",6814,"Stockholm 1938 (Stockholm)",6308,9122,7004,8911,1,0,6422,,0,,,,,,,,
+4815,"Greek (Athens)",6815,"Greek (Athens)",6120,9122,7004,8912,1,0,6422,,0,,,,,,,,
+4816,"Carthage (Paris)",6816,"Carthage (Paris)",6223,9105,7011,8903,1,0,6403,1130,1,9603,-263,6,431,,,,
+4817,"NGO 1948 (Oslo)",6817,"NGO 1948 (Oslo)",6273,9122,7005,8913,1,0,6422,1654,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21
+4818,"S-JTSK (Ferro)",6818,"System Jednotne Trigonometricke Site Katastralni (Ferro)",6156,9122,7004,8909,1,0,6422,15965,1,9603,589,76,480,,,,
+4819,"Nord Sahara 1959 (Paris)",6819,"Nord Sahara 1959 (Paris)",6307,9105,7012,8903,1,1,6403,5660,1,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547
+4820,"Segara (Jakarta)",6820,"Gunung Segara (Jakarta)",6613,9122,7004,8908,1,0,6422,1897,1,9603,-403,684,41,,,,
+4821,"Voirol 1879 (Paris)",6821,"Voirol 1879 (Paris)",6821,9105,7011,8903,1,0,6403,,0,,,,,,,,
+4823,Sao Tome,1044,Sao Tome,1044,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4824,Principe,1046,Principe,1046,9122,7022,8901,1,0,6422,,0,,,,,,,,
+4901,"ATF (Paris)",6901,"Ancienne Triangulation Francaise (Paris)",6901,9105,7027,8914,1,0,6403,,0,,,,,,,,
+4902,"NDG (Paris)",6902,"Nord de Guerre (Paris)",6902,9105,7027,8903,1,1,6403,,0,,,,,,,,
+4903,"Madrid 1870 (Madrid)",6903,"Madrid 1870 (Madrid)",6903,9122,7028,8905,1,0,6422,,0,,,,,,,,
+4904,"Lisbon 1890 (Lisbon)",6904,"Lisbon 1890 (Lisbon)",6666,9122,7004,8902,1,0,6422,1986,1,9603,508.088,-191.042,565.223,,,,
+5013,PTRA08,1041,Autonomous Regions of Portugal 2008,1041,9122,7019,8901,1,0,6422,4905,0,9603,0,0,0,,,,
+5132,Tokyo 1892,1048,Tokyo 1892,6162,9122,7004,8901,1,0,6422,,0,,,,,,,,
+5228,"S-JTSK/05",1052,"System Jednotne Trigonometricke Site Katastralni/05",1052,9122,7004,8901,1,0,6422,5227,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378
+5229,"S-JTSK/05 (Ferro)",1055,"System Jednotne Trigonometricke Site Katastralni/05 (Ferro)",1052,9122,7004,8909,1,0,6422,5227,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378
+5233,SLD99,1053,Sri Lanka Datum 1999,1053,9122,7015,8901,1,0,6422,5236,0,9607,-0.293,766.95,87.713,-0.195704,-1.695068,-3.473016,-0.039338
+5246,GDBD2009,1056,Geocentric Datum Brunei Darussalam 2009,1056,9122,7019,8901,1,0,6422,6701,0,9603,0,0,0,,,,
+5252,TUREF,1057,Turkish National Reference Frame,1057,9122,7019,8901,1,0,6422,5261,0,9603,0,0,0,,,,
+5264,DRUKREF 03,1058,Bhutan National Geodetic Datum,1058,9122,7019,8901,1,0,6422,5267,0,9603,0,0,0,,,,
+5324,ISN2004,1060,Islands Net 2004,1060,9122,7019,8901,1,0,6422,5327,0,9603,0,0,0,,,,
+5340,POSGAR 2007,1062,Posiciones Geodesicas Argentinas 2007,1062,9122,7019,8901,1,0,6422,5351,0,9603,0,0,0,,,,
+5354,MARGEN,1063,Marco Geodesico Nacional de Bolivia,1063,9122,7019,8901,1,0,6422,5374,0,9603,0,0,0,,,,
+5360,SIRGAS-Chile,1064,SIRGAS-Chile,1064,9122,7019,8901,1,0,6422,5375,0,9603,0,0,0,,,,
+5365,CR05,1065,Costa Rica 2005,1065,9122,7030,8901,1,0,6422,5376,0,9603,0,0,0,,,,
+5371,MACARIO SOLIS,1066,Sistema Geodesico Nacional de Panama MACARIO SOLIS,1066,9122,7019,8901,1,0,6422,5377,0,9603,0,0,0,,,,
+5373,Peru96,1067,Peru96,1067,9122,7019,8901,1,0,6422,5378,0,9603,0,0,0,,,,
+5381,SIRGAS-ROU98,1068,SIRGAS-ROU98,1068,9122,7030,8901,1,0,6422,5384,0,9603,0,0,0,,,,
+5393,"SIRGAS_ES2007.8",1069,"SIRGAS_ES2007.8",1069,9122,7019,8901,1,0,6422,5395,0,9603,0,0,0,,,,
+5451,Ocotepeque 1935,1070,Ocotepeque 1935,1070,9122,7008,8901,1,0,6422,6891,1,9603,205,96,-98,,,,
+5464,Sibun Gorge 1922,1071,Sibun Gorge 1922,1071,9122,7007,8901,1,0,6422,,0,,,,,,,,
+5467,Panama-Colon 1911,1072,Panama-Colon 1911,1072,9122,7008,8901,1,0,6422,,0,,,,,,,,
+5489,RGAF09,1073,Reseau Geodesique des Antilles Francaises 2009,1073,9122,7019,8901,1,0,6422,5501,0,9603,0,0,0,,,,
+5524,Corrego Alegre 1961,1074,Corrego Alegre 1961,1074,9122,7022,8901,1,0,6422,,0,,,,,,,,
+5527,"SAD69(96)",1075,"South American Datum 1969(96)",1075,9122,7050,8901,1,0,6422,6195,0,9603,-67.35,3.88,-38.22,,,,
+5546,PNG94,1076,Papua New Guinea Geodetic Datum 1994,1076,9122,7019,8901,1,0,6422,5553,0,9603,0,0,0,,,,
+5561,UCS-2000,1077,Ukraine 2000,1077,9122,7024,8901,1,0,6422,5590,1,9607,25,-141,-78.5,0,-0.35,-0.736,0
+5593,FEH2010,1078,Fehmarnbelt Datum 2010,1078,9122,7019,8901,1,0,6422,5599,0,9603,0,0,0,,,,
+5681,"DB_REF",1081,Deutsche Bahn Reference System,1081,9122,7004,8901,1,0,6422,,0,,,,,,,,
+5886,TGD2005,1095,Tonga Geodetic Datum 2005,1095,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6135,CIGD11,1100,Cayman Islands Geodetic Datum 2011,1100,9122,7019,8901,1,0,6422,6177,0,9603,0,0,0,,,,
+6207,Nepal 1981,1111,Nepal 1981,1111,9122,7015,8901,1,0,6422,6208,0,9603,293.17,726.18,245.36,,,,
+6311,CGRS93,1112,Cyprus Geodetic Reference System 1993,1112,9122,7030,8901,1,0,6422,7721,1,9607,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926
+6318,"NAD83(2011)",1116,"NAD83 (National Spatial Reference System 2011)",1116,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6322,"NAD83(PA11)",1117,"NAD83 (National Spatial Reference System PA11)",1117,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6325,"NAD83(MA11)",1118,"NAD83 (National Spatial Reference System MA11)",1118,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6365,Mexico ITRF2008,1120,Mexico ITRF2008,1120,9122,7019,8901,1,0,6422,6373,0,9603,0,0,0,,,,
+6668,JGD2011,1128,Japanese Geodetic Datum 2011,1128,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6706,RDN2008,1132,Rete Dinamica Nazionale 2008,1132,9122,7019,8901,1,0,6422,6711,0,9603,0,0,0,,,,
+6783,"NAD83(CORS96)",1133,"NAD83 (Continuously Operating Reference Station 1996)",1133,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6881,Aden 1925,1135,Aden 1925,1135,9122,7012,8901,1,0,6422,6910,0,9603,-24,-203,268,,,,
+6882,Bekaa Valley 1920,1137,Bekaa Valley 1920,1137,9122,7012,8901,1,0,6422,6911,0,9603,-183,-15,273,,,,
+6883,Bioko,1136,Bioko,1136,9122,7022,8901,1,0,6422,6912,0,9603,-235,-110,393,,,,
+6892,South East Island 1943,1138,South East Island 1943,1138,9122,7012,8901,1,0,6422,6914,1,9603,-43.685,-179.785,-267.721,,,,
+6894,Gambia,1139,Gambia,1139,9122,7012,8901,1,0,6422,6913,0,9603,-63,176,185,,,,
+6980,IGD05,1143,Israeli Geodetic Datum 2005,1143,9122,7019,8901,1,1,6422,,0,,,,,,,,
+6983,IG05 Intermediate CRS,1142,IG05 Intermediate Datum,1142,9122,7019,8901,1,0,6422,,0,,,,,,,,
+6987,"IGD05/12",1145,"Israeli Geodetic Datum 2005(2012)",1145,9122,7019,8901,1,1,6422,,0,,,,,,,,
+6990,"IG05/12 Intermediate CRS",1144,"IG05/12 Intermediate Datum",1144,9122,7019,8901,1,0,6422,,0,,,,,,,,
+7035,"RGSPM06 (lon-lat)",1038,Reseau Geodesique de Saint Pierre et Miquelon 2006,1038,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7037,"RGR92 (lon-lat)",6627,Reseau Geodesique de la Reunion 1992,6627,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7039,"RGM04 (lon-lat)",1036,Reseau Geodesique de Mayotte 2004,1036,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7041,"RGFG95 (lon-lat)",6624,Reseau Geodesique Francais Guyane 1995,6624,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7073,RGTAAF07,1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9122,7019,8901,1,0,6422,,0,,,,,,,,
+7084,"RGF93 (lon-lat)",6171,Reseau Geodesique Francais 1993,6171,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7086,"RGAF09 (lon-lat)",1073,Reseau Geodesique des Antilles Francaises 2009,1073,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7088,"RGTAAF07 (lon-lat)",1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9122,7019,8901,1,1,6424,,0,,,,,,,,
+7133,"RGTAAF07 (lon-lat)",1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9122,7019,8901,1,0,6424,,0,,,,,,,,
+7136,IGD05,1114,Israeli Geodetic Datum 2005,1114,9122,7030,8901,1,0,6422,,0,,,,,,,,
+7139,"IGD05/12",1115,"Israeli Geodetic Datum 2005(2012)",1115,9122,7030,8901,1,0,6422,,0,,,,,,,,
+7373,ONGD14,1147,Oman National Geodetic Datum 2014,1147,9122,7019,8901,1,0,6422,7443,0,9603,0,0,0,,,,
+7683,GSK-2011,1159,Geodezicheskaya Sistema Koordinat 2011,1159,9122,1025,8901,1,0,6422,,0,,,,,,,,
+7686,Kyrg-06,1160,Kyrgyzstan Geodetic Datum 2006,1160,9122,7019,8901,1,0,6422,,0,,,,,,,,
+7798,BGS2005,1167,Bulgaria Geodetic System 2005,1167,9122,7019,8901,1,0,6422,,0,,,,,,,,
+7844,GDA2020,1168,Geocentric Datum of Australia 2020,1168,9122,7019,8901,1,0,6422,,0,,,,,,,,
+7881,St. Helena Tritan,1173,St. Helena Tritan,1173,9122,7030,8901,1,0,6422,7898,0,9603,-0.077,0.079,0.086,,,,
+7886,SHGD2015,1174,St. Helena Geodetic Datum 2015,1174,9122,7019,8901,1,0,6422,7892,0,9603,0,0,0,,,,
+8042,"Gusterberg (Ferro)",1188,"Gusterberg (Ferro)",1188,9122,1026,8909,1,0,6422,,0,,,,,,,,
+8043,"St. Stephen (Ferro)",1189,"St. Stephen (Ferro)",1189,9122,1026,8909,1,0,6422,,0,,,,,,,,
+8086,ISN2016,1187,Islands Net 2016,1187,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8232,"NAD83(CSRS96)",1192,"North American Datum of 1983 (CSRS96)",1192,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8237,"NAD83(CSRS)v2",1193,"North American Datum of 1983 (CSRS) version 2",1193,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8240,"NAD83(CSRS)v3",1194,"North American Datum of 1983 (CSRS) version 3",1194,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8246,"NAD83(CSRS)v4",1195,"North American Datum of 1983 (CSRS) version 4",1195,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8249,"NAD83(CSRS)v5",1196,"North American Datum of 1983 (CSRS) version 5",1196,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8252,"NAD83(CSRS)v6",1197,"North American Datum of 1983 (CSRS) version 6",1197,9122,7019,8901,1,0,6422,,0,,,,,,,,
+8255,"NAD83(CSRS)v7",1198,"North American Datum of 1983 (CSRS) version 7",1198,9122,7019,8901,1,0,6422,,0,,,,,,,,
diff --git a/resources/geoccs.csv b/resources/geoccs.csv
new file mode 100644
index 0000000000..0a7add38f0
--- /dev/null
+++ b/resources/geoccs.csv
@@ -0,0 +1,182 @@
+"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","GREENWICH_DATUM","UOM_CODE","ELLIPSOID_CODE","PRIME_MERIDIAN_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE"
+3822,TWD97,1026,Taiwan Datum 1997,1026,9001,7019,8901,1,0,6500
+3887,IGRS,1029,Iraqi Geospatial Reference System,1029,9001,7019,8901,1,0,6500
+4000,MOLDREF99,1032,MOLDREF99,1032,9001,7019,8901,1,0,6500
+4039,RGRDC 2005,1033,Reseau Geodesique de la RDC 2005,1033,9001,7019,8901,1,0,6500
+4073,SREF98,1034,Serbian Reference Network 1998,1034,9001,7019,8901,1,0,6500
+4079,REGCAN95,1035,Red Geodesica de Canarias 1995,1035,9001,7019,8901,1,0,6500
+4328,"WGS 84 (geocentric)",6326,World Geodetic System 1984,6326,9001,7030,8901,1,1,6500
+4330,"ITRF88 (geocentric)",6647,International Terrestrial Reference Frame 1988,6647,9001,7019,8901,1,1,6500
+4331,"ITRF89 (geocentric)",6648,International Terrestrial Reference Frame 1989,6648,9001,7019,8901,1,1,6500
+4332,"ITRF90 (geocentric)",6649,International Terrestrial Reference Frame 1990,6649,9001,7019,8901,1,1,6500
+4333,"ITRF91 (geocentric)",6650,International Terrestrial Reference Frame 1991,6650,9001,7019,8901,1,1,6500
+4334,"ITRF92 (geocentric)",6651,International Terrestrial Reference Frame 1992,6651,9001,7019,8901,1,1,6500
+4335,"ITRF93 (geocentric)",6652,International Terrestrial Reference Frame 1993,6652,9001,7019,8901,1,1,6500
+4336,"ITRF94 (geocentric)",6653,International Terrestrial Reference Frame 1994,6653,9001,7019,8901,1,1,6500
+4337,"ITRF96 (geocentric)",6654,International Terrestrial Reference Frame 1996,6654,9001,7019,8901,1,1,6500
+4338,"ITRF97 (geocentric)",6655,International Terrestrial Reference Frame 1997,6655,9001,7019,8901,1,1,6500
+4340,"Australian Antarctic (geocentric)",6176,Australian Antarctic Datum 1998,6176,9001,7019,8901,1,1,6500
+4342,"EST97 (geocentric)",6180,Estonia 1997,6180,9001,7019,8901,1,1,6500
+4344,"CHTRF95 (geocentric)",6151,Swiss Terrestrial Reference Frame 1995,6151,9001,7019,8901,1,1,6500
+4346,"ETRS89 (geocentric)",6258,European Terrestrial Reference System 1989,6258,9001,7019,8901,1,1,6500
+4348,"GDA94 (geocentric)",6283,Geocentric Datum of Australia 1994,6283,9001,7019,8901,1,1,6500
+4350,"Hartebeesthoek94 (geocentric)",6148,Hartebeesthoek94,6148,9001,7030,8901,1,1,6500
+4352,"IRENET95 (geocentric)",6173,IRENET95,6173,9001,7019,8901,1,1,6500
+4354,"JGD2000 (geocentric)",6612,Japanese Geodetic Datum 2000,6612,9001,7019,8901,1,1,6500
+4356,"LKS94 (ETRS89) (geocentric)",6126,"Lithuania 1994 (ETRS89)",6126,9001,7019,8901,1,1,6500
+4358,"Moznet (geocentric)",6130,"Moznet (ITRF94)",6130,9001,7030,8901,1,1,6500
+4360,"NAD83(CSRS) (geocentric)",6140,NAD83 Canadian Spatial Reference System,6140,9001,7019,8901,1,1,6500
+4362,"NAD83(HARN) (geocentric)",6152,"NAD83 (High Accuracy Reference Network)",6152,9001,7019,8901,1,1,6500
+4364,"NZGD2000 (geocentric)",6167,New Zealand Geodetic Datum 2000,6167,9001,7019,8901,1,1,6500
+4366,"POSGAR 98 (geocentric)",6190,Posiciones Geodesicas Argentinas 1998,6190,9001,7019,8901,1,1,6500
+4368,"REGVEN (geocentric)",6189,Red Geodesica Venezolana,6189,9001,7019,8901,1,1,6500
+4370,"RGF93 (geocentric)",6171,Reseau Geodesique Francais 1993,6171,9001,7019,8901,1,1,6500
+4372,"RGFG95 (geocentric)",6624,Reseau Geodesique Francais Guyane 1995,6624,9001,7019,8901,1,1,6500
+4374,"RGR92 (geocentric)",6627,Reseau Geodesique de la Reunion 1992,6627,9001,7019,8901,1,1,6500
+4376,"SIRGAS (geocentric)",6170,Sistema de Referencia Geocentrico para America del Sur 1995,6170,9001,7019,8901,1,1,6500
+4378,"SWEREF99 (geocentric)",6619,SWEREF99,6619,9001,7019,8901,1,1,6500
+4380,"Yemen NGN96 (geocentric)",6163,Yemen National Geodetic Network 1996,6163,9001,7030,8901,1,1,6500
+4382,"RGNC 1991 (geocentric)",6645,Reseau Geodesique Nouvelle Caledonie 1991,6645,9001,7022,8901,1,1,6500
+4384,"RRAF 1991 (geocentric)",6640,Reseau de Reference des Antilles Francaises 1991,6640,9001,7030,8901,1,1,6500
+4385,"ITRF2000 (geocentric)",6656,International Terrestrial Reference Frame 2000,6656,9001,7019,8901,1,1,6500
+4387,"ISN93 (geocentric)",6659,Islands Net 1993,6659,9001,7019,8901,1,1,6500
+4389,"LKS92 (geocentric)",6661,Latvia 1992,6661,9001,7019,8901,1,1,6500
+4465,RGSPM06,1038,Reseau Geodesique de Saint Pierre et Miquelon 2006,1038,9001,7019,8901,1,0,6500
+4468,RGM04,1036,Reseau Geodesique de Mayotte 2004,1036,9001,7019,8901,1,0,6500
+4473,Cadastre 1997,1037,Cadastre 1997,1037,9001,7022,8901,1,0,6500
+4479,China Geodetic Coordinate System 2000,1043,China 2000,1043,9001,1024,8901,1,0,6500
+4481,Mexico ITRF92,1042,Mexico ITRF92,1042,9001,7019,8901,1,0,6500
+4556,RRAF 1991,1047,Reseau de Reference des Antilles Francaises 1991,1047,9001,7019,8901,1,0,6500
+4882,Slovenia 1996,6765,Slovenia Geodetic Datum 1996,6765,9001,7019,8901,1,0,6500
+4884,RSRGD2000,6764,Ross Sea Region Geodetic Datum 2000,6764,9001,7019,8901,1,0,6500
+4886,BDA2000,6762,Bermuda 2000,6762,9001,7030,8901,1,0,6500
+4888,HTRS96,6761,Croatian Terrestrial Reference System,6761,9001,7019,8901,1,0,6500
+4890,WGS 66,6760,World Geodetic System 1966,6760,9001,7025,8901,1,0,6500
+4892,"NAD83(NSRS2007)",6759,"NAD83 (National Spatial Reference System 2007)",6759,9001,7019,8901,1,0,6500
+4894,JAD2001,6758,Jamaica 2001,6758,9001,7030,8901,1,0,6500
+4896,ITRF2005,6896,International Terrestrial Reference Frame 2005,6896,9001,7019,8901,1,0,6500
+4897,DGN95,6755,Datum Geodesi Nasional 1995,6755,9001,7030,8901,1,0,6500
+4899,LGD2006,6754,Libyan Geodetic Datum 2006,6754,9001,7022,8901,1,0,6500
+4906,RGNC91-93,6749,Reseau Geodesique de Nouvelle Caledonie 91-93,6749,9001,7019,8901,1,0,6500
+4908,GR96,6747,Greenland 1996,6747,9001,7019,8901,1,0,6500
+4910,ITRF88,6647,International Terrestrial Reference Frame 1988,6647,9001,7019,8901,1,0,6500
+4911,ITRF89,6648,International Terrestrial Reference Frame 1989,6648,9001,7019,8901,1,0,6500
+4912,ITRF90,6649,International Terrestrial Reference Frame 1990,6649,9001,7019,8901,1,0,6500
+4913,ITRF91,6650,International Terrestrial Reference Frame 1991,6650,9001,7019,8901,1,0,6500
+4914,ITRF92,6651,International Terrestrial Reference Frame 1992,6651,9001,7019,8901,1,0,6500
+4915,ITRF93,6652,International Terrestrial Reference Frame 1993,6652,9001,7019,8901,1,0,6500
+4916,ITRF94,6653,International Terrestrial Reference Frame 1994,6653,9001,7019,8901,1,0,6500
+4917,ITRF96,6654,International Terrestrial Reference Frame 1996,6654,9001,7019,8901,1,0,6500
+4918,ITRF97,6655,International Terrestrial Reference Frame 1997,6655,9001,7019,8901,1,0,6500
+4919,ITRF2000,6656,International Terrestrial Reference Frame 2000,6656,9001,7019,8901,1,0,6500
+4920,GDM2000,6742,Geodetic Datum of Malaysia 2000,6742,9001,7019,8901,1,0,6500
+4922,PZ-90,6740,Parametry Zemli 1990,6740,9001,7054,8901,1,0,6500
+4924,Mauritania 1999,6702,Mauritania 1999,6702,9001,7019,8901,1,0,6500
+4926,Korea 2000,6737,Geocentric datum of Korea,6737,9001,7019,8901,1,0,6500
+4928,POSGAR 94,6694,Posiciones Geodesicas Argentinas 1994,6694,9001,7030,8901,1,0,6500
+4930,Australian Antarctic,6176,Australian Antarctic Datum 1998,6176,9001,7019,8901,1,0,6500
+4932,CHTRF95,6151,Swiss Terrestrial Reference Frame 1995,6151,9001,7019,8901,1,0,6500
+4934,EST97,6180,Estonia 1997,6180,9001,7019,8901,1,0,6500
+4936,ETRS89,6258,European Terrestrial Reference System 1989,6258,9001,7019,8901,1,0,6500
+4938,GDA94,6283,Geocentric Datum of Australia 1994,6283,9001,7019,8901,1,0,6500
+4940,Hartebeesthoek94,6148,Hartebeesthoek94,6148,9001,7030,8901,1,0,6500
+4942,IRENET95,6173,IRENET95,6173,9001,7019,8901,1,0,6500
+4944,ISN93,6659,Islands Net 1993,6659,9001,7019,8901,1,0,6500
+4946,JGD2000,6612,Japanese Geodetic Datum 2000,6612,9001,7019,8901,1,0,6500
+4948,LKS92,6661,Latvia 1992,6661,9001,7019,8901,1,0,6500
+4950,LKS94,6126,"Lithuania 1994 (ETRS89)",6126,9001,7019,8901,1,0,6500
+4952,Moznet,6130,"Moznet (ITRF94)",6130,9001,7030,8901,1,0,6500
+4954,"NAD83(CSRS)",6140,NAD83 Canadian Spatial Reference System,6140,9001,7019,8901,1,0,6500
+4956,"NAD83(HARN)",6152,"NAD83 (High Accuracy Reference Network)",6152,9001,7019,8901,1,0,6500
+4958,NZGD2000,6167,New Zealand Geodetic Datum 2000,6167,9001,7019,8901,1,0,6500
+4960,POSGAR 98,6190,Posiciones Geodesicas Argentinas 1998,6190,9001,7019,8901,1,0,6500
+4962,REGVEN,6189,Red Geodesica Venezolana,6189,9001,7019,8901,1,0,6500
+4964,RGF93,6171,Reseau Geodesique Francais 1993,6171,9001,7019,8901,1,0,6500
+4966,RGFG95,6624,Reseau Geodesique Francais Guyane 1995,6624,9001,7019,8901,1,0,6500
+4968,RGNC 1991,6645,Reseau Geodesique Nouvelle Caledonie 1991,6645,9001,7022,8901,1,1,6500
+4970,RGR92,6627,Reseau Geodesique de la Reunion 1992,6627,9001,7019,8901,1,0,6500
+4972,RRAF 1991,6640,Reseau de Reference des Antilles Francaises 1991,6640,9001,7030,8901,1,1,6500
+4974,SIRGAS 1995,6170,Sistema de Referencia Geocentrico para America del Sur 1995,6170,9001,7019,8901,1,0,6500
+4976,SWEREF99,6619,SWEREF99,6619,9001,7019,8901,1,0,6500
+4978,WGS 84,6326,World Geodetic System 1984,6326,9001,7030,8901,1,0,6500
+4980,Yemen NGN96,6163,Yemen National Geodetic Network 1996,6163,9001,7030,8901,1,0,6500
+4982,IGM95,6670,Istituto Geografico Militaire 1995,6670,9001,7030,8901,1,0,6500
+4984,WGS 72,6322,World Geodetic System 1972,6322,9001,7043,8901,1,0,6500
+4986,WGS 72BE,6324,WGS 72 Transit Broadcast Ephemeris,6324,9001,7043,8901,1,0,6500
+4988,SIRGAS 2000,6674,Sistema de Referencia Geocentrico para las AmericaS 2000,6674,9001,7019,8901,1,0,6500
+4990,Lao 1993,6677,Lao 1993,6677,9001,7024,8901,1,0,6500
+4992,Lao 1997,6678,Lao National Datum 1997,6678,9001,7024,8901,1,0,6500
+4994,PRS92,6683,Philippine Reference System 1992,6683,9001,7008,8901,1,0,6500
+4996,MAGNA-SIRGAS,6686,Marco Geocentrico Nacional de Referencia,6686,9001,7019,8901,1,0,6500
+4998,RGPF,6687,Reseau Geodesique de la Polynesie Francaise,6687,9001,7019,8901,1,0,6500
+5011,PTRA08,1041,Autonomous Regions of Portugal 2008,1041,9001,7019,8901,1,0,6500
+5244,GDBD2009,1056,Geocentric Datum Brunei Darussalam 2009,1056,9001,7019,8901,1,0,6500
+5250,TUREF,1057,Turkish National Reference Frame,1057,9001,7019,8901,1,0,6500
+5262,DRUKREF 03,1058,Bhutan National Geodetic Datum,1058,9001,7019,8901,1,0,6500
+5322,ISN2004,1060,Islands Net 2004,1060,9001,7019,8901,1,0,6500
+5332,ITRF2008,1061,International Terrestrial Reference Frame 2008,1061,9001,7019,8901,1,0,6500
+5341,POSGAR 2007,1062,Posiciones Geodesicas Argentinas 2007,1062,9001,7019,8901,1,0,6500
+5352,MARGEN,1063,Marco Geodesico Nacional de Bolivia,1063,9001,7019,8901,1,0,6500
+5358,SIRGAS-Chile,1064,SIRGAS-Chile,1064,9001,7019,8901,1,0,6500
+5363,CR05,1065,Costa Rica 2005,1065,9001,7030,8901,1,0,6500
+5368,MACARIO SOLIS,1066,Sistema Geodesico Nacional de Panama MACARIO SOLIS,1066,9001,7019,8901,1,0,6500
+5369,Peru96,1067,Peru96,1067,9001,7019,8901,1,0,6500
+5379,SIRGAS-ROU98,1068,SIRGAS-ROU98,1068,9001,7030,8901,1,0,6500
+5391,"SIRGAS_ES2007.8",1069,"SIRGAS_ES2007.8",1069,9001,7019,8901,1,0,6500
+5487,RGAF09,1073,Reseau Geodesique des Antilles Francaises 2009,1073,9001,7019,8901,1,0,6500
+5544,PNG94,1076,Papua New Guinea Geodetic Datum 1994,1076,9001,7019,8901,1,0,6500
+5558,UCS-2000,1077,Ukraine 2000,1077,9001,7024,8901,1,0,6500
+5591,FEH2010,1078,Fehmarnbelt Datum 2010,1078,9001,7019,8901,1,0,6500
+5828,"DB_REF",1081,Deutsche Bahn Reference System,1081,9001,7004,8901,1,0,6500
+5884,TGD2005,1095,Tonga Geodetic Datum 2005,1095,9001,7019,8901,1,0,6500
+6133,CIGD11,1100,Cayman Islands Geodetic Datum 2011,1100,9001,7019,8901,1,0,6500
+6309,CGRS93,1112,Cyprus Geodetic Reference System 1993,1112,9001,7030,8901,1,0,6500
+6317,"NAD83(2011)",1116,"NAD83 (National Spatial Reference System 2011)",1116,9001,7019,8901,1,0,6500
+6320,"NAD83(PA11)",1117,"NAD83 (National Spatial Reference System PA11)",1117,9001,7019,8901,1,0,6500
+6323,"NAD83(MA11)",1118,"NAD83 (National Spatial Reference System MA11)",1118,9001,7019,8901,1,0,6500
+6363,Mexico ITRF2008,1120,Mexico ITRF2008,1120,9001,7019,8901,1,0,6500
+6666,JGD2011,1128,Japanese Geodetic Datum 2011,1128,9001,7019,8901,1,0,6500
+6704,RDN2008,1132,Rete Dinamica Nazionale 2008,1132,9001,7019,8901,1,0,6500
+6781,"NAD83(CORS96)",1133,"NAD83 (Continuously Operating Reference Station 1996)",1133,9001,7019,8901,1,0,6500
+6934,IGS08,1141,IGS08,1141,9001,7019,8901,1,0,6500
+6978,IGD05,1143,Israeli Geodetic Datum 2005,1143,9001,7019,8901,1,1,6500
+6981,IG05 Intermediate CRS,1142,IG05 Intermediate Datum,1142,9001,7019,8901,1,0,6500
+6985,"IGD05/12",1145,"Israeli Geodetic Datum 2005(2012)",1145,9001,7019,8901,1,1,6500
+6988,"IG05/12 Intermediate CRS",1144,"IG05/12 Intermediate Datum",1144,9001,7019,8901,1,0,6500
+7071,RGTAAF07,1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,1113,9001,7019,8901,1,0,6500
+7134,IGD05,1114,Israeli Geodetic Datum 2005,1114,9001,7030,8901,1,0,6500
+7137,"IGD05/12",1115,"Israeli Geodetic Datum 2005(2012)",1115,9001,7030,8901,1,0,6500
+7371,ONGD14,1147,Oman National Geodetic Datum 2014,1147,9001,7019,8901,1,0,6500
+7656,"WGS 84 (G730)",1152,"World Geodetic System 1984 (G730)",1152,9001,7030,8901,1,0,6500
+7658,"WGS 84 (G873)",1153,"World Geodetic System 1984 (G873)",1153,9001,7030,8901,1,0,6500
+7660,"WGS 84 (G1150)",1154,"World Geodetic System 1984 (G1150)",1154,9001,7030,8901,1,0,6500
+7662,"WGS 84 (G1674)",1155,"World Geodetic System 1984 (G1674)",1155,9001,7030,8901,1,0,6500
+7664,"WGS 84 (G1762)",1156,"World Geodetic System 1984 (G1762)",1156,9001,7030,8901,1,0,6500
+7677,PZ-90.02,1157,Parametry Zemli 1990.02,1157,9001,7054,8901,1,0,6500
+7679,PZ-90.11,1158,Parametry Zemli 1990.11,1158,9001,7054,8901,1,0,6500
+7681,GSK-2011,1159,Geodezicheskaya Sistema Koordinat 2011,1159,9001,1025,8901,1,0,6500
+7684,Kyrg-06,1160,Kyrgyzstan Geodetic Datum 2006,1160,9001,7019,8901,1,0,6500
+7789,ITRF2014,1165,International Terrestrial Reference Frame 2014,1165,9001,7019,8901,1,0,6500
+7796,BGS2005,1167,Bulgaria Geodetic System 2005,1167,9001,7019,8901,1,0,6500
+7815,"WGS 84 (Transit)",1166,"World Geodetic System 1984 (Transit)",1166,9001,7030,8901,1,0,6500
+7842,GDA2020,1168,Geocentric Datum of Australia 2020,1168,9001,7019,8901,1,0,6500
+7879,St. Helena Tritan,1173,St. Helena Tritan,1173,9001,7030,8901,1,0,6500
+7884,SHGD2015,1174,St. Helena Geodetic Datum 2015,1174,9001,7019,8901,1,0,6500
+7914,ETRF89,1178,European Terrestrial Reference Frame 1989,1178,9001,7019,8901,1,0,6500
+7916,ETRF90,1179,European Terrestrial Reference Frame 1990,1179,9001,7019,8901,1,0,6500
+7918,ETRF91,1180,European Terrestrial Reference Frame 1991,1180,9001,7019,8901,1,0,6500
+7920,ETRF92,1181,European Terrestrial Reference Frame 1992,1181,9001,7019,8901,1,0,6500
+7922,ETRF93,1182,European Terrestrial Reference Frame 1993,1182,9001,7019,8901,1,0,6500
+7924,ETRF94,1183,European Terrestrial Reference Frame 1994,1183,9001,7019,8901,1,0,6500
+7926,ETRF96,1184,European Terrestrial Reference Frame 1996,1184,9001,7019,8901,1,0,6500
+7928,ETRF97,1185,European Terrestrial Reference Frame 1997,1185,9001,7019,8901,1,0,6500
+7930,ETRF2000,1186,European Terrestrial Reference Frame 2000,1186,9001,7019,8901,1,0,6500
+8084,ISN2016,1187,Islands Net 2016,1187,9001,7019,8901,1,0,6500
+8227,IGS14,1191,IGS14,1191,9001,7019,8901,1,0,6500
+8230,"NAD83(CSRS96)",1192,"North American Datum of 1983 (CSRS96)",1192,9001,7019,8901,1,0,6500
+8233,"NAD83(CSRS)v2",1193,"North American Datum of 1983 (CSRS) version 2",1193,9001,7019,8901,1,0,6500
+8238,"NAD83(CSRS)v3",1194,"North American Datum of 1983 (CSRS) version 3",1194,9001,7019,8901,1,0,6500
+8242,"NAD83(CSRS)v4",1195,"North American Datum of 1983 (CSRS) version 4",1195,9001,7019,8901,1,0,6500
+8247,"NAD83(CSRS)v5",1196,"North American Datum of 1983 (CSRS) version 5",1196,9001,7019,8901,1,0,6500
+8250,"NAD83(CSRS)v6",1197,"North American Datum of 1983 (CSRS) version 6",1197,9001,7019,8901,1,0,6500
+8253,"NAD83(CSRS)v7",1198,"North American Datum of 1983 (CSRS) version 7",1198,9001,7019,8901,1,0,6500
diff --git a/resources/pcs.csv b/resources/pcs.csv
new file mode 100644
index 0000000000..3dcb4c70c2
--- /dev/null
+++ b/resources/pcs.csv
@@ -0,0 +1,4977 @@
+"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","UOM_CODE","SOURCE_GEOGCRS_CODE","COORD_OP_CODE","COORD_OP_METHOD_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","PARAMETER_CODE_1","PARAMETER_VALUE_1","PARAMETER_UOM_1","PARAMETER_CODE_2","PARAMETER_VALUE_2","PARAMETER_UOM_2","PARAMETER_CODE_3","PARAMETER_VALUE_3","PARAMETER_UOM_3","PARAMETER_CODE_4","PARAMETER_VALUE_4","PARAMETER_UOM_4","PARAMETER_CODE_5","PARAMETER_VALUE_5","PARAMETER_UOM_5","PARAMETER_CODE_6","PARAMETER_VALUE_6","PARAMETER_UOM_6","PARAMETER_CODE_7","PARAMETER_VALUE_7","PARAMETER_UOM_7","DX","DY","DZ","RX","RY","RZ","DS"
+2000,"Anguilla 1957 / British West Indies Grid",9001,4600,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2001,"Antigua 1943 / British West Indies Grid",9001,4601,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2002,"Dominica 1945 / British West Indies Grid",9001,4602,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2003,"Grenada 1953 / British West Indies Grid",9001,4603,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2004,"Montserrat 1958 / British West Indies Grid",9001,4604,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2005,"St. Kitts 1955 / British West Indies Grid",9001,4605,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2006,"St. Lucia 1955 / British West Indies Grid",9001,4606,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2007,"St. Vincent 45 / British West Indies Grid",9001,4607,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+2008,"NAD27(CGQ77) / SCoPQ zone 2",9001,4609,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2009,"NAD27(CGQ77) / SCoPQ zone 3",9001,4609,17703,9807,1,0,4499,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2010,"NAD27(CGQ77) / SCoPQ zone 4",9001,4609,17704,9807,1,0,4499,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2011,"NAD27(CGQ77) / SCoPQ zone 5",9001,4609,17705,9807,1,0,4499,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2012,"NAD27(CGQ77) / SCoPQ zone 6",9001,4609,17706,9807,1,0,4499,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2013,"NAD27(CGQ77) / SCoPQ zone 7",9001,4609,17707,9807,1,0,4499,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2014,"NAD27(CGQ77) / SCoPQ zone 8",9001,4609,17708,9807,1,0,4499,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2015,"NAD27(CGQ77) / SCoPQ zone 9",9001,4609,17709,9807,1,0,4499,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2016,"NAD27(CGQ77) / SCoPQ zone 10",9001,4609,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2017,"NAD27(76) / MTM zone 8",9001,4608,17708,9807,1,0,4499,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2018,"NAD27(76) / MTM zone 9",9001,4608,17709,9807,1,0,4499,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2019,"NAD27(76) / MTM zone 10",9001,4608,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2020,"NAD27(76) / MTM zone 11",9001,4608,17711,9807,1,0,4400,8801,0,9110,8802,-82.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2021,"NAD27(76) / MTM zone 12",9001,4608,17712,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2022,"NAD27(76) / MTM zone 13",9001,4608,17713,9807,1,0,4400,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2023,"NAD27(76) / MTM zone 14",9001,4608,17714,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2024,"NAD27(76) / MTM zone 15",9001,4608,17715,9807,1,0,4400,8801,0,9102,8802,-90,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2025,"NAD27(76) / MTM zone 16",9001,4608,17716,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2026,"NAD27(76) / MTM zone 17",9001,4608,17717,9807,1,0,4400,8801,0,9102,8802,-96,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2027,"NAD27(76) / UTM zone 15N",9001,4608,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2028,"NAD27(76) / UTM zone 16N",9001,4608,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2029,"NAD27(76) / UTM zone 17N",9001,4608,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2030,"NAD27(76) / UTM zone 18N",9001,4608,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2031,"NAD27(CGQ77) / UTM zone 17N",9001,4609,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2032,"NAD27(CGQ77) / UTM zone 18N",9001,4609,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2033,"NAD27(CGQ77) / UTM zone 19N",9001,4609,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2034,"NAD27(CGQ77) / UTM zone 20N",9001,4609,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2035,"NAD27(CGQ77) / UTM zone 21N",9001,4609,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2036,"NAD83(CSRS98) / New Brunswick Stereo",9001,4140,19946,9809,1,1,4500,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,2500000,9001,8807,7500000,9001,,,,,,,,,,,,,
+2037,"NAD83(CSRS98) / UTM zone 19N",9001,4140,16019,9807,1,1,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2038,"NAD83(CSRS98) / UTM zone 20N",9001,4140,16020,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2039,"Israel 1993 / Israeli TM Grid",9001,4141,18204,9807,1,0,4400,8801,31.4403817,9110,8802,35.1216261,9110,8805,1.0000067,9201,8806,219529.584,9001,8807,626907.39,9001,,,,,,,,,,,,,
+2040,"Locodjo 1965 / UTM zone 30N",9001,4142,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2041,"Abidjan 1987 / UTM zone 30N",9001,4143,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2042,"Locodjo 1965 / UTM zone 29N",9001,4142,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2043,"Abidjan 1987 / UTM zone 29N",9001,4143,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2044,"Hanoi 1972 / Gauss-Kruger zone 18",9001,4147,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+2045,"Hanoi 1972 / Gauss-Kruger zone 19",9001,4147,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+2046,"Hartebeesthoek94 / Lo15",9001,4148,17515,9808,1,0,6503,8801,0,9102,8802,15,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2047,"Hartebeesthoek94 / Lo17",9001,4148,17517,9808,1,0,6503,8801,0,9102,8802,17,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2048,"Hartebeesthoek94 / Lo19",9001,4148,17519,9808,1,0,6503,8801,0,9102,8802,19,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2049,"Hartebeesthoek94 / Lo21",9001,4148,17521,9808,1,0,6503,8801,0,9102,8802,21,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2050,"Hartebeesthoek94 / Lo23",9001,4148,17523,9808,1,0,6503,8801,0,9102,8802,23,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2051,"Hartebeesthoek94 / Lo25",9001,4148,17525,9808,1,0,6503,8801,0,9102,8802,25,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2052,"Hartebeesthoek94 / Lo27",9001,4148,17527,9808,1,0,6503,8801,0,9102,8802,27,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2053,"Hartebeesthoek94 / Lo29",9001,4148,17529,9808,1,0,6503,8801,0,9102,8802,29,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2054,"Hartebeesthoek94 / Lo31",9001,4148,17531,9808,1,0,6503,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2055,"Hartebeesthoek94 / Lo33",9001,4148,17533,9808,1,0,6503,8801,0,9102,8802,33,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2056,"CH1903+ / LV95",9001,4150,19950,9815,1,0,4400,8811,46.570866,9110,8812,7.26225,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,2600000,9001,8817,1200000,9001,,,,,,,
+2057,"Rassadiran / Nakhl e Taqi",9001,4153,19951,9815,1,0,4400,8811,27.31077837,9110,8812,52.3612741,9110,8813,0.34179803,9110,8814,0.34179803,9110,8815,0.999895934,9201,8816,658377.437,9001,8817,3044969.194,9001,,,,,,,
+2058,"ED50(ED77) / UTM zone 38N",9001,4154,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2059,"ED50(ED77) / UTM zone 39N",9001,4154,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2060,"ED50(ED77) / UTM zone 40N",9001,4154,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2061,"ED50(ED77) / UTM zone 41N",9001,4154,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2062,"Madrid 1870 (Madrid) / Spain",9001,4903,19921,9801,1,0,4499,8801,40,9102,8802,0,9102,8805,0.9988085293,9201,8806,600000,9001,8807,600000,9001,,,,,,,,,,,,,
+2063,"Dabola 1981 / UTM zone 28N",9001,4315,16028,9807,1,1,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2064,"Dabola 1981 / UTM zone 29N",9001,4315,16029,9807,1,1,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2065,"S-JTSK (Ferro) / Krovak",9001,4818,19952,9819,1,0,6501,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,42.3,9110,570.8,85.7,462.8,4.998,1.587,5.261,3.56
+2066,"Mount Dillon / Tobago Grid",9039,4157,19924,9806,1,0,4407,8801,11.1507843,9110,8802,-60.4109632,9110,8806,187500,9039,8807,180000,9039,,,,,,,,,,,,,,,,
+2067,"Naparima 1955 / UTM zone 20N",9001,4158,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2068,"ELD79 / Libya zone 5",9001,4159,18240,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2069,"ELD79 / Libya zone 6",9001,4159,18241,9807,1,0,4499,8801,0,9102,8802,11,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2070,"ELD79 / Libya zone 7",9001,4159,18242,9807,1,0,4499,8801,0,9102,8802,13,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2071,"ELD79 / Libya zone 8",9001,4159,18243,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2072,"ELD79 / Libya zone 9",9001,4159,18244,9807,1,0,4499,8801,0,9102,8802,17,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2073,"ELD79 / Libya zone 10",9001,4159,18245,9807,1,0,4499,8801,0,9102,8802,19,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2074,"ELD79 / Libya zone 11",9001,4159,18246,9807,1,0,4499,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2075,"ELD79 / Libya zone 12",9001,4159,18247,9807,1,0,4499,8801,0,9102,8802,23,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2076,"ELD79 / Libya zone 13",9001,4159,18248,9807,1,0,4499,8801,0,9102,8802,25,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2077,"ELD79 / UTM zone 32N",9001,4159,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2078,"ELD79 / UTM zone 33N",9001,4159,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2079,"ELD79 / UTM zone 34N",9001,4159,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2080,"ELD79 / UTM zone 35N",9001,4159,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2081,"Chos Malal 1914 / Argentina 2",9001,4160,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+2082,"Pampa del Castillo / Argentina 2",9001,4161,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+2083,"Hito XVIII 1963 / Argentina 2",9001,4254,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+2084,"Hito XVIII 1963 / UTM zone 19S",9001,4254,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2085,"NAD27 / Cuba Norte",9001,4267,18061,9801,1,1,4532,8801,22.21,9110,8802,-81,9110,8805,0.99993602,9201,8806,500000,9001,8807,280296.016,9001,,,,,,,,,,,,,
+2086,"NAD27 / Cuba Sur",9001,4267,18062,9801,1,1,4532,8801,20.43,9110,8802,-76.5,9110,8805,0.99994848,9201,8806,500000,9001,8807,229126.939,9001,,,,,,,,,,,,,
+2087,"ELD79 / TM 12 NE",9001,4159,16412,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2088,"Carthage / TM 11 NE",9001,4223,16411,9807,1,0,4400,8801,0,9102,8802,11,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2089,"Yemen NGN96 / UTM zone 38N",9001,4163,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2090,"Yemen NGN96 / UTM zone 39N",9001,4163,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2091,"South Yemen / Gauss Kruger zone 8",9001,4164,16208,9807,1,1,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+2092,"South Yemen / Gauss Kruger zone 9",9001,4164,16209,9807,1,1,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+2093,"Hanoi 1972 / GK 106 NE",9001,4147,16586,9807,1,0,4530,8801,0,9102,8802,106,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2094,"WGS 72BE / TM 106 NE",9001,4324,16506,9807,1,0,4400,8801,0,9102,8802,106,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2095,"Bissau / UTM zone 28N",9001,4165,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2096,"Korean 1985 / East Belt",9001,4162,18251,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+2097,"Korean 1985 / Central Belt",9001,4162,18252,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+2098,"Korean 1985 / West Belt",9001,4162,18253,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+2099,"Qatar 1948 / Qatar Grid",9001,4286,19953,9806,1,0,4400,8801,25.22565,9110,8802,50.4541,9110,8806,100000,9001,8807,100000,9001,,,,,,,,,,,,,,,,
+2100,"GGRS87 / Greek Grid",9001,4121,19930,9807,1,0,4400,8801,0,9102,8802,24,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2101,"Lake / Maracaibo Grid M1",9001,4249,18260,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,0,9001,8807,-52684.972,9001,,,,,,,,,,,,,
+2102,"Lake / Maracaibo Grid",9001,4249,18261,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,200000,9001,8807,147315.028,9001,,,,,,,,,,,,,
+2103,"Lake / Maracaibo Grid M3",9001,4249,18262,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,500000,9001,8807,447315.028,9001,,,,,,,,,,,,,
+2104,"Lake / Maracaibo La Rosa Grid",9001,4249,18263,9801,1,0,4499,8801,10.1,9110,8802,-71.3620224,9110,8805,1,9201,8806,-17044,9001,8807,-23139.97,9001,,,,,,,,,,,,,
+2105,"NZGD2000 / Mount Eden 2000",9001,4167,17931,9807,1,0,4500,8801,-36.5247,9110,8802,174.4551,9110,8805,0.9999,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2106,"NZGD2000 / Bay of Plenty 2000",9001,4167,17932,9807,1,0,4500,8801,-37.454,9110,8802,176.2758,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2107,"NZGD2000 / Poverty Bay 2000",9001,4167,17933,9807,1,0,4500,8801,-38.3728,9110,8802,177.5308,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2108,"NZGD2000 / Hawkes Bay 2000",9001,4167,17934,9807,1,0,4500,8801,-39.3903,9110,8802,176.4025,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2109,"NZGD2000 / Taranaki 2000",9001,4167,17935,9807,1,0,4500,8801,-39.0808,9110,8802,174.134,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2110,"NZGD2000 / Tuhirangi 2000",9001,4167,17936,9807,1,0,4500,8801,-39.3044,9110,8802,175.3824,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2111,"NZGD2000 / Wanganui 2000",9001,4167,17937,9807,1,0,4500,8801,-40.1431,9110,8802,175.2917,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2112,"NZGD2000 / Wairarapa 2000",9001,4167,17938,9807,1,0,4500,8801,-40.5531,9110,8802,175.385,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2113,"NZGD2000 / Wellington 2000",9001,4167,17939,9807,1,0,4500,8801,-41.1804,9110,8802,174.4635,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2114,"NZGD2000 / Collingwood 2000",9001,4167,17940,9807,1,0,4500,8801,-40.4253,9110,8802,172.4019,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2115,"NZGD2000 / Nelson 2000",9001,4167,17941,9807,1,0,4500,8801,-41.1628,9110,8802,173.1757,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2116,"NZGD2000 / Karamea 2000",9001,4167,17942,9807,1,0,4500,8801,-41.1723,9110,8802,172.0632,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2117,"NZGD2000 / Buller 2000",9001,4167,17943,9807,1,0,4500,8801,-41.4838,9110,8802,171.3452,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2118,"NZGD2000 / Grey 2000",9001,4167,17944,9807,1,0,4500,8801,-42.2001,9110,8802,171.3259,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2119,"NZGD2000 / Amuri 2000",9001,4167,17945,9807,1,0,4500,8801,-42.412,9110,8802,173.0036,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2120,"NZGD2000 / Marlborough 2000",9001,4167,17946,9807,1,0,4500,8801,-41.324,9110,8802,173.4807,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2121,"NZGD2000 / Hokitika 2000",9001,4167,17947,9807,1,0,4500,8801,-42.531,9110,8802,170.5847,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2122,"NZGD2000 / Okarito 2000",9001,4167,17948,9807,1,0,4500,8801,-43.0636,9110,8802,170.1539,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2123,"NZGD2000 / Jacksons Bay 2000",9001,4167,17949,9807,1,0,4500,8801,-43.584,9110,8802,168.3622,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2124,"NZGD2000 / Mount Pleasant 2000",9001,4167,17950,9807,1,0,4500,8801,-43.3526,9110,8802,172.4337,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2125,"NZGD2000 / Gawler 2000",9001,4167,17951,9807,1,0,4500,8801,-43.4455,9110,8802,171.2138,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2126,"NZGD2000 / Timaru 2000",9001,4167,17952,9807,1,0,4500,8801,-44.2407,9110,8802,171.0326,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2127,"NZGD2000 / Lindis Peak 2000",9001,4167,17953,9807,1,0,4500,8801,-44.4406,9110,8802,169.2803,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2128,"NZGD2000 / Mount Nicholas 2000",9001,4167,17954,9807,1,0,4500,8801,-45.0758,9110,8802,168.2355,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2129,"NZGD2000 / Mount York 2000",9001,4167,17955,9807,1,0,4500,8801,-45.3349,9110,8802,167.4419,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2130,"NZGD2000 / Observation Point 2000",9001,4167,17956,9807,1,0,4500,8801,-45.4858,9110,8802,170.3742,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2131,"NZGD2000 / North Taieri 2000",9001,4167,17957,9807,1,0,4500,8801,-45.5141,9110,8802,170.1657,9110,8805,0.99996,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2132,"NZGD2000 / Bluff 2000",9001,4167,17958,9807,1,0,4500,8801,-46.36,9110,8802,168.2034,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2133,"NZGD2000 / UTM zone 58S",9001,4167,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2134,"NZGD2000 / UTM zone 59S",9001,4167,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2135,"NZGD2000 / UTM zone 60S",9001,4167,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2136,"Accra / Ghana National Grid",9094,4168,19959,9807,1,0,4404,8801,4.4,9110,8802,-1,9110,8805,0.99975,9201,8806,900000,9094,8807,0,9094,,,,,,,,,,,,,
+2137,"Accra / TM 1 NW",9001,4168,17001,9807,1,0,4400,8801,0,9102,8802,-1,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2138,"NAD27(CGQ77) / Quebec Lambert",9001,4609,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+2139,"NAD83(CSRS98) / SCoPQ zone 2",9001,4140,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2140,"NAD83(CSRS98) / MTM zone 3",9001,4140,17703,9807,1,1,4496,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2141,"NAD83(CSRS98) / MTM zone 4",9001,4140,17704,9807,1,1,4496,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2142,"NAD83(CSRS98) / MTM zone 5",9001,4140,17705,9807,1,1,4496,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2143,"NAD83(CSRS98) / MTM zone 6",9001,4140,17706,9807,1,1,4496,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2144,"NAD83(CSRS98) / MTM zone 7",9001,4140,17707,9807,1,1,4496,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2145,"NAD83(CSRS98) / MTM zone 8",9001,4140,17708,9807,1,1,4496,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2146,"NAD83(CSRS98) / MTM zone 9",9001,4140,17709,9807,1,1,4496,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2147,"NAD83(CSRS98) / MTM zone 10",9001,4140,17710,9807,1,1,4496,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2148,"NAD83(CSRS98) / UTM zone 21N",9001,4140,16021,9807,1,1,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2149,"NAD83(CSRS98) / UTM zone 18N",9001,4140,16018,9807,1,1,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2150,"NAD83(CSRS98) / UTM zone 17N",9001,4140,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2151,"NAD83(CSRS98) / UTM zone 13N",9001,4140,16013,9807,1,1,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2152,"NAD83(CSRS98) / UTM zone 12N",9001,4140,16012,9807,1,1,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2153,"NAD83(CSRS98) / UTM zone 11N",9001,4140,16011,9807,1,1,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2154,"RGF93 / Lambert-93",9001,4171,18085,9802,1,0,4499,8821,46.3,9110,8822,3,9110,8823,49,9110,8824,44,9110,8826,700000,9001,8827,6600000,9001,,,,,,,,,,
+2155,"American Samoa 1962 / American Samoa Lambert",9003,4169,15300,9801,1,1,4497,8801,-14.16,9110,8802,170,9110,8805,1,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+2156,"NAD83(HARN) / UTM zone 59S",9001,4152,16159,9807,1,1,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2157,"IRENET95 / Irish Transverse Mercator",9001,4173,19962,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,0.99982,9201,8806,600000,9001,8807,750000,9001,,,,,,,,,,,,,
+2158,"IRENET95 / UTM zone 29N",9001,4173,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2159,"Sierra Leone 1924 / New Colony Grid",9094,4174,19963,9807,1,0,4404,8801,6.4,9110,8802,-12,9110,8805,1,9201,8806,500000,9094,8807,0,9094,,,,,,,,,,,,,
+2160,"Sierra Leone 1924 / New War Office Grid",9094,4174,19964,9807,1,0,4404,8801,6.4,9110,8802,-12,9110,8805,1,9201,8806,800000,9094,8807,600000,9094,,,,,,,,,,,,,
+2161,"Sierra Leone 1968 / UTM zone 28N",9001,4175,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2162,"Sierra Leone 1968 / UTM zone 29N",9001,4175,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2163,US National Atlas Equal Area,9001,4052,3899,1027,1,0,4499,8801,45,9102,8802,-100,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+2164,"Locodjo 1965 / TM 5 NW",9001,4142,17005,9807,1,0,4400,8801,0,9102,8802,-5,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2165,"Abidjan 1987 / TM 5 NW",9001,4143,17005,9807,1,0,4400,8801,0,9102,8802,-5,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2166,"Pulkovo 1942(83) / Gauss Kruger zone 3",9001,4178,16263,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+2167,"Pulkovo 1942(83) / Gauss Kruger zone 4",9001,4178,16264,9807,1,1,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+2168,"Pulkovo 1942(83) / Gauss Kruger zone 5",9001,4178,16265,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+2169,"Luxembourg 1930 / Gauss",9001,4181,19966,9807,1,0,4530,8801,49.5,9110,8802,6.1,9110,8805,1,9201,8806,80000,9001,8807,100000,9001,,,,,,,,,,,,,
+2170,"MGI / Slovenia Grid",9001,4312,19967,9807,1,1,4530,8801,0,9110,8802,15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2171,"Pulkovo 1942(58) / Poland zone I",9001,4179,18281,9809,1,1,4530,8801,50.373,9110,8802,21.05,9110,8805,0.9998,9201,8806,4637000,9001,8807,5647000,9001,,,,,,,,,,,,,
+2172,"Pulkovo 1942(58) / Poland zone II",9001,4179,18282,9809,1,0,4530,8801,53.0007,9110,8802,21.301,9110,8805,0.9998,9201,8806,4603000,9001,8807,5806000,9001,,,,,,,,,,,,,
+2173,"Pulkovo 1942(58) / Poland zone III",9001,4179,18283,9809,1,0,4530,8801,53.35,9110,8802,17.003,9110,8805,0.9998,9201,8806,3501000,9001,8807,5999000,9001,,,,,,,,,,,,,
+2174,"Pulkovo 1942(58) / Poland zone IV",9001,4179,18284,9809,1,0,4530,8801,51.4015,9110,8802,16.402,9110,8805,0.9998,9201,8806,3703000,9001,8807,5627000,9001,,,,,,,,,,,,,
+2175,"Pulkovo 1942(58) / Poland zone V",9001,4179,18285,9807,1,0,4530,8801,0,9110,8802,18.573,9110,8805,0.999983,9201,8806,237000,9001,8807,-4700000,9001,,,,,,,,,,,,,
+2176,"ETRS89 / Poland CS2000 zone 5",9001,4258,18305,9807,1,0,4531,8801,0,9102,8802,15,9102,8805,0.999923,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+2177,"ETRS89 / Poland CS2000 zone 6",9001,4258,18306,9807,1,0,4531,8801,0,9102,8802,18,9102,8805,0.999923,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+2178,"ETRS89 / Poland CS2000 zone 7",9001,4258,18307,9807,1,0,4531,8801,0,9102,8802,21,9102,8805,0.999923,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+2179,"ETRS89 / Poland CS2000 zone 8",9001,4258,18308,9807,1,0,4531,8801,0,9102,8802,24,9102,8805,0.999923,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+2180,"ETRS89 / Poland CS92",9001,4258,18300,9807,1,0,4531,8801,0,9102,8802,19,9102,8805,0.9993,9201,8806,500000,9001,8807,-5300000,9001,,,,,,,,,,,,,
+2188,"Azores Occidental 1939 / UTM zone 25N",9001,4182,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2189,"Azores Central 1948 / UTM zone 26N",9001,4183,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2190,"Azores Oriental 1940 / UTM zone 26N",9001,4184,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2191,"Madeira 1936 / UTM zone 28N",9001,4185,16028,9807,1,1,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2192,"ED50 / France EuroLambert",9001,4230,18086,9801,1,1,4499,8801,46.48,9110,8802,2.2014025,9110,8805,0.99987742,9201,8806,600000,9001,8807,2200000,9001,,,,,,,,,,,,,
+2193,"NZGD2000 / New Zealand Transverse Mercator 2000",9001,4167,19971,9807,1,0,4500,8801,0,9102,8802,173,9102,8805,0.9996,9201,8806,1600000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2194,"American Samoa 1962 / American Samoa Lambert",9003,4169,15301,9801,1,1,4497,8801,-14.16,9110,8802,-170,9110,8805,1,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+2195,"NAD83(HARN) / UTM zone 2S",9001,4152,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2196,"ETRS89 / Kp2000 Jutland",9001,4258,18401,9807,1,0,4400,8801,0,9110,8802,9.3,9110,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2197,"ETRS89 / Kp2000 Zealand",9001,4258,18402,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2198,"ETRS89 / Kp2000 Bornholm",9001,4258,18403,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,,
+2199,"Albanian 1987 / Gauss Kruger zone 4",9001,4191,16204,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+2200,"ATS77 / New Brunswick Stereographic (ATS77)",9001,4122,19945,9809,1,0,4500,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,300000,9001,8807,800000,9001,,,,,,,,,,,,,
+2201,"REGVEN / UTM zone 18N",9001,4189,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2202,"REGVEN / UTM zone 19N",9001,4189,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2203,"REGVEN / UTM zone 20N",9001,4189,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2204,"NAD27 / Tennessee",9003,4267,15302,9802,1,0,4497,8821,34.4,9110,8822,-86,9110,8823,35.15,9110,8824,36.25,9110,8826,2000000,9003,8827,100000,9003,,,,,,,,,,
+2205,"NAD83 / Kentucky North",9001,4269,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2206,"ED50 / 3-degree Gauss-Kruger zone 9",9001,4230,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+2207,"ED50 / 3-degree Gauss-Kruger zone 10",9001,4230,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+2208,"ED50 / 3-degree Gauss-Kruger zone 11",9001,4230,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+2209,"ED50 / 3-degree Gauss-Kruger zone 12",9001,4230,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+2210,"ED50 / 3-degree Gauss-Kruger zone 13",9001,4230,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+2211,"ED50 / 3-degree Gauss-Kruger zone 14",9001,4230,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+2212,"ED50 / 3-degree Gauss-Kruger zone 15",9001,4230,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+2213,"ETRS89 / TM 30 NE",9001,4258,16430,9807,1,0,4400,8801,0,9102,8802,30,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2214,"Douala 1948 / AOF west",9001,4192,18415,9807,1,1,4400,8801,0,9110,8802,10.3,9110,8805,0.999,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+2215,"Manoca 1962 / UTM zone 32N",9001,4193,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2216,"Qornoq 1927 / UTM zone 22N",9001,4194,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2217,"Qornoq 1927 / UTM zone 23N",9001,4194,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2218,"Scoresbysund 1952 / Greenland zone 5 east",9001,4195,18425,9826,1,0,1031,8801,70.3,9110,8802,-24,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2219,"ATS77 / UTM zone 19N",9001,4122,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2220,"ATS77 / UTM zone 20N",9001,4122,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2221,"Scoresbysund 1952 / Greenland zone 6 east",9001,4195,18426,9826,1,0,1031,8801,67.3,9110,8802,-32,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2222,"NAD83 / Arizona East (ft)",9002,4269,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+2223,"NAD83 / Arizona Central (ft)",9002,4269,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+2224,"NAD83 / Arizona West (ft)",9002,4269,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+2225,"NAD83 / California zone 1 (ftUS)",9003,4269,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2226,"NAD83 / California zone 2 (ftUS)",9003,4269,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2227,"NAD83 / California zone 3 (ftUS)",9003,4269,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2228,"NAD83 / California zone 4 (ftUS)",9003,4269,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2229,"NAD83 / California zone 5 (ftUS)",9003,4269,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2230,"NAD83 / California zone 6 (ftUS)",9003,4269,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2231,"NAD83 / Colorado North (ftUS)",9003,4269,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+2232,"NAD83 / Colorado Central (ftUS)",9003,4269,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+2233,"NAD83 / Colorado South (ftUS)",9003,4269,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+2234,"NAD83 / Connecticut (ftUS)",9003,4269,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,,
+2235,"NAD83 / Delaware (ftUS)",9003,4269,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2236,"NAD83 / Florida East (ftUS)",9003,4269,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2237,"NAD83 / Florida West (ftUS)",9003,4269,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2238,"NAD83 / Florida North (ftUS)",9003,4269,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2239,"NAD83 / Georgia East (ftUS)",9003,4269,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2240,"NAD83 / Georgia West (ftUS)",9003,4269,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+2241,"NAD83 / Idaho East (ftUS)",9003,4269,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2242,"NAD83 / Idaho Central (ftUS)",9003,4269,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+2243,"NAD83 / Idaho West (ftUS)",9003,4269,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,,
+2244,"NAD83 / Indiana East (ftUS)",9003,4269,15326,9807,1,1,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,818125,9003,,,,,,,,,,,,,
+2245,"NAD83 / Indiana West (ftUS)",9003,4269,15327,9807,1,1,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,818125,9003,,,,,,,,,,,,,
+2246,"NAD83 / Kentucky North (ftUS)",9003,4269,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2247,"NAD83 / Kentucky South (ftUS)",9003,4269,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2248,"NAD83 / Maryland (ftUS)",9003,4269,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,,
+2249,"NAD83 / Massachusetts Mainland (ftUS)",9003,4269,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,,
+2250,"NAD83 / Massachusetts Island (ftUS)",9003,4269,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2251,"NAD83 / Michigan North (ft)",9002,4269,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,,
+2252,"NAD83 / Michigan Central (ft)",9002,4269,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,,
+2253,"NAD83 / Michigan South (ft)",9002,4269,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,,
+2254,"NAD83 / Mississippi East (ftUS)",9003,4269,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+2255,"NAD83 / Mississippi West (ftUS)",9003,4269,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+2256,"NAD83 / Montana (ft)",9002,4269,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+2257,"NAD83 / New Mexico East (ftUS)",9003,4269,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,,
+2258,"NAD83 / New Mexico Central (ftUS)",9003,4269,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+2259,"NAD83 / New Mexico West (ftUS)",9003,4269,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,,
+2260,"NAD83 / New York East (ftUS)",9003,4269,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+2261,"NAD83 / New York Central (ftUS)",9003,4269,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,,
+2262,"NAD83 / New York West (ftUS)",9003,4269,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,,
+2263,"NAD83 / New York Long Island (ftUS)",9003,4269,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,,
+2264,"NAD83 / North Carolina (ftUS)",9003,4269,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+2265,"NAD83 / North Dakota North (ft)",9002,4269,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+2266,"NAD83 / North Dakota South (ft)",9002,4269,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+2267,"NAD83 / Oklahoma North (ftUS)",9003,4269,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2268,"NAD83 / Oklahoma South (ftUS)",9003,4269,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2269,"NAD83 / Oregon North (ft)",9002,4269,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,,
+2270,"NAD83 / Oregon South (ft)",9002,4269,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,,
+2271,"NAD83 / Pennsylvania North (ftUS)",9003,4269,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2272,"NAD83 / Pennsylvania South (ftUS)",9003,4269,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2273,"NAD83 / South Carolina (ft)",9002,4269,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,,
+2274,"NAD83 / Tennessee (ftUS)",9003,4269,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2275,"NAD83 / Texas North (ftUS)",9003,4269,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,,
+2276,"NAD83 / Texas North Central (ftUS)",9003,4269,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,,
+2277,"NAD83 / Texas Central (ftUS)",9003,4269,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,,
+2278,"NAD83 / Texas South Central (ftUS)",9003,4269,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,,
+2279,"NAD83 / Texas South (ftUS)",9003,4269,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,,
+2280,"NAD83 / Utah North (ft)",9002,4269,15362,9802,0,0,4495,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640419.948,9002,8827,3280839.895,9002,,,,,,,,,,
+2281,"NAD83 / Utah Central (ft)",9002,4269,15363,9802,0,0,4495,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640419.948,9002,8827,6561679.79,9002,,,,,,,,,,
+2282,"NAD83 / Utah South (ft)",9002,4269,15364,9802,0,0,4495,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640419.948,9002,8827,9842519.685,9002,,,,,,,,,,
+2283,"NAD83 / Virginia North (ftUS)",9003,4269,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,,
+2284,"NAD83 / Virginia South (ftUS)",9003,4269,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,,
+2285,"NAD83 / Washington North (ftUS)",9003,4269,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2286,"NAD83 / Washington South (ftUS)",9003,4269,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2287,"NAD83 / Wisconsin North (ftUS)",9003,4269,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2288,"NAD83 / Wisconsin Central (ftUS)",9003,4269,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2289,"NAD83 / Wisconsin South (ftUS)",9003,4269,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2290,"ATS77 / Prince Edward Isl. Stereographic (ATS77)",9001,4122,19933,9809,1,0,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,700000,9001,8807,400000,9001,,,,,,,,,,,,,
+2291,"NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83)",9001,4122,19960,9809,1,1,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2292,"NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83)",9001,4140,19960,9809,1,1,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2294,"ATS77 / MTM Nova Scotia zone 4",9001,4122,17794,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+2295,"ATS77 / MTM Nova Scotia zone 5",9001,4122,17795,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+2296,"Ammassalik 1958 / Greenland zone 7 east",9001,4196,18427,9826,1,0,1031,8801,64.3,9110,8802,-40,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2297,"Qornoq 1927 / Greenland zone 1 east",9001,4194,18421,9826,1,1,4501,8801,82.3,9110,8802,-40,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2298,"Qornoq 1927 / Greenland zone 2 east",9001,4194,18422,9826,1,1,4501,8801,79.3,9110,8802,-24,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2299,"Qornoq 1927 / Greenland zone 2 west",9001,4194,18432,9826,1,0,1031,8801,79.3,9110,8802,-64,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2300,"Qornoq 1927 / Greenland zone 3 east",9001,4194,18423,9826,1,1,4501,8801,76.3,9110,8802,-20,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2301,"Qornoq 1927 / Greenland zone 3 west",9001,4194,18433,9826,1,0,1031,8801,76.3,9110,8802,-64,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2302,"Qornoq 1927 / Greenland zone 4 east",9001,4194,18424,9826,1,1,4501,8801,73.3,9110,8802,-24,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2303,"Qornoq 1927 / Greenland zone 4 west",9001,4194,18434,9826,1,0,1031,8801,73.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2304,"Qornoq 1927 / Greenland zone 5 west",9001,4194,18435,9826,1,0,1031,8801,70.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2305,"Qornoq 1927 / Greenland zone 6 west",9001,4194,18436,9826,1,0,1031,8801,67.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2306,"Qornoq 1927 / Greenland zone 7 west",9001,4194,18437,9826,1,0,1031,8801,64.3,9110,8802,-52,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2307,"Qornoq 1927 / Greenland zone 8 east",9001,4194,18428,9826,1,0,1031,8801,61.3,9110,8802,-48,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2308,"Batavia / TM 109 SE",9001,4211,16709,9807,1,0,4400,8801,0,9102,8802,109,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2309,"WGS 84 / TM 116 SE",9001,4326,16716,9807,1,0,4400,8801,0,9102,8802,116,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2310,"WGS 84 / TM 132 SE",9001,4326,16732,9807,1,0,4400,8801,0,9102,8802,132,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2311,"WGS 84 / TM 6 NE",9001,4326,16406,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2312,"Garoua / UTM zone 33N",9001,4197,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2313,"Kousseri / UTM zone 33N",9001,4198,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2314,"Trinidad 1903 / Trinidad Grid (ftCla)",9005,4302,19975,9806,1,0,4403,8801,10.263,9110,8802,-61.2,9110,8806,283800,9005,8807,214500,9005,,,,,,,,,,,,,,,,
+2315,"Campo Inchauspe / UTM zone 19S",9001,4221,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2316,"Campo Inchauspe / UTM zone 20S",9001,4221,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2317,"PSAD56 / ICN Regional",9001,4248,19976,9802,1,0,4499,8821,6,9102,8822,-66,9102,8823,9,9102,8824,3,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+2318,"Ain el Abd / Aramco Lambert",9001,4204,19977,9802,1,0,4400,8821,25.0522236,9110,8822,48,9102,8823,17,9102,8824,33,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+2319,"ED50 / TM27",9001,4230,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2320,"ED50 / TM30",9001,4230,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2321,"ED50 / TM33",9001,4230,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2322,"ED50 / TM36",9001,4230,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2323,"ED50 / TM39",9001,4230,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2324,"ED50 / TM42",9001,4230,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2325,"ED50 / TM45",9001,4230,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2326,Hong Kong 1980 Grid System,9001,4611,19978,9807,1,0,4500,8801,22.184368,9110,8802,114.10428,9110,8805,1,9201,8806,836694.05,9001,8807,819069.8,9001,,,,,,,,,,,,,
+2327,"Xian 1980 / Gauss-Kruger zone 13",9001,4610,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+2328,"Xian 1980 / Gauss-Kruger zone 14",9001,4610,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+2329,"Xian 1980 / Gauss-Kruger zone 15",9001,4610,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+2330,"Xian 1980 / Gauss-Kruger zone 16",9001,4610,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+2331,"Xian 1980 / Gauss-Kruger zone 17",9001,4610,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+2332,"Xian 1980 / Gauss-Kruger zone 18",9001,4610,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+2333,"Xian 1980 / Gauss-Kruger zone 19",9001,4610,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+2334,"Xian 1980 / Gauss-Kruger zone 20",9001,4610,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+2335,"Xian 1980 / Gauss-Kruger zone 21",9001,4610,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+2336,"Xian 1980 / Gauss-Kruger zone 22",9001,4610,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+2337,"Xian 1980 / Gauss-Kruger zone 23",9001,4610,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+2338,"Xian 1980 / Gauss-Kruger CM 75E",9001,4610,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2339,"Xian 1980 / Gauss-Kruger CM 81E",9001,4610,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2340,"Xian 1980 / Gauss-Kruger CM 87E",9001,4610,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2341,"Xian 1980 / Gauss-Kruger CM 93E",9001,4610,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2342,"Xian 1980 / Gauss-Kruger CM 99E",9001,4610,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2343,"Xian 1980 / Gauss-Kruger CM 105E",9001,4610,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2344,"Xian 1980 / Gauss-Kruger CM 111E",9001,4610,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2345,"Xian 1980 / Gauss-Kruger CM 117E",9001,4610,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2346,"Xian 1980 / Gauss-Kruger CM 123E",9001,4610,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2347,"Xian 1980 / Gauss-Kruger CM 129E",9001,4610,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2348,"Xian 1980 / Gauss-Kruger CM 135E",9001,4610,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2349,"Xian 1980 / 3-degree Gauss-Kruger zone 25",9001,4610,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+2350,"Xian 1980 / 3-degree Gauss-Kruger zone 26",9001,4610,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+2351,"Xian 1980 / 3-degree Gauss-Kruger zone 27",9001,4610,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+2352,"Xian 1980 / 3-degree Gauss-Kruger zone 28",9001,4610,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+2353,"Xian 1980 / 3-degree Gauss-Kruger zone 29",9001,4610,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+2354,"Xian 1980 / 3-degree Gauss-Kruger zone 30",9001,4610,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+2355,"Xian 1980 / 3-degree Gauss-Kruger zone 31",9001,4610,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+2356,"Xian 1980 / 3-degree Gauss-Kruger zone 32",9001,4610,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+2357,"Xian 1980 / 3-degree Gauss-Kruger zone 33",9001,4610,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+2358,"Xian 1980 / 3-degree Gauss-Kruger zone 34",9001,4610,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,,
+2359,"Xian 1980 / 3-degree Gauss-Kruger zone 35",9001,4610,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,,
+2360,"Xian 1980 / 3-degree Gauss-Kruger zone 36",9001,4610,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,,
+2361,"Xian 1980 / 3-degree Gauss-Kruger zone 37",9001,4610,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,,
+2362,"Xian 1980 / 3-degree Gauss-Kruger zone 38",9001,4610,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,,
+2363,"Xian 1980 / 3-degree Gauss-Kruger zone 39",9001,4610,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,,
+2364,"Xian 1980 / 3-degree Gauss-Kruger zone 40",9001,4610,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,,
+2365,"Xian 1980 / 3-degree Gauss-Kruger zone 41",9001,4610,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,,
+2366,"Xian 1980 / 3-degree Gauss-Kruger zone 42",9001,4610,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,,
+2367,"Xian 1980 / 3-degree Gauss-Kruger zone 43",9001,4610,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,,
+2368,"Xian 1980 / 3-degree Gauss-Kruger zone 44",9001,4610,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,,
+2369,"Xian 1980 / 3-degree Gauss-Kruger zone 45",9001,4610,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,,
+2370,"Xian 1980 / 3-degree Gauss-Kruger CM 75E",9001,4610,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2371,"Xian 1980 / 3-degree Gauss-Kruger CM 78E",9001,4610,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2372,"Xian 1980 / 3-degree Gauss-Kruger CM 81E",9001,4610,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2373,"Xian 1980 / 3-degree Gauss-Kruger CM 84E",9001,4610,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2374,"Xian 1980 / 3-degree Gauss-Kruger CM 87E",9001,4610,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2375,"Xian 1980 / 3-degree Gauss-Kruger CM 90E",9001,4610,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2376,"Xian 1980 / 3-degree Gauss-Kruger CM 93E",9001,4610,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2377,"Xian 1980 / 3-degree Gauss-Kruger CM 96E",9001,4610,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2378,"Xian 1980 / 3-degree Gauss-Kruger CM 99E",9001,4610,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2379,"Xian 1980 / 3-degree Gauss-Kruger CM 102E",9001,4610,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2380,"Xian 1980 / 3-degree Gauss-Kruger CM 105E",9001,4610,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2381,"Xian 1980 / 3-degree Gauss-Kruger CM 108E",9001,4610,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2382,"Xian 1980 / 3-degree Gauss-Kruger CM 111E",9001,4610,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2383,"Xian 1980 / 3-degree Gauss-Kruger CM 114E",9001,4610,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2384,"Xian 1980 / 3-degree Gauss-Kruger CM 117E",9001,4610,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2385,"Xian 1980 / 3-degree Gauss-Kruger CM 120E",9001,4610,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2386,"Xian 1980 / 3-degree Gauss-Kruger CM 123E",9001,4610,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2387,"Xian 1980 / 3-degree Gauss-Kruger CM 126E",9001,4610,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2388,"Xian 1980 / 3-degree Gauss-Kruger CM 129E",9001,4610,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2389,"Xian 1980 / 3-degree Gauss-Kruger CM 132E",9001,4610,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2390,"Xian 1980 / 3-degree Gauss-Kruger CM 135E",9001,4610,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2391,"KKJ / Finland zone 1",9001,4123,18191,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+2392,"KKJ / Finland zone 2",9001,4123,18192,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+2393,"KKJ / Finland Uniform Coordinate System",9001,4123,18193,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+2394,"KKJ / Finland zone 4",9001,4123,18194,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+2395,"South Yemen / Gauss-Kruger zone 8",9001,4164,16208,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+2396,"South Yemen / Gauss-Kruger zone 9",9001,4164,16209,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+2397,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3",9001,4178,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01
+2398,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4",9001,4178,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01
+2399,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5",9001,4178,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01
+2400,RT90 2.5 gon W,9001,4124,19929,9807,1,1,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+2401,"Beijing 1954 / 3-degree Gauss-Kruger zone 25",9001,4214,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+2402,"Beijing 1954 / 3-degree Gauss-Kruger zone 26",9001,4214,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+2403,"Beijing 1954 / 3-degree Gauss-Kruger zone 27",9001,4214,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+2404,"Beijing 1954 / 3-degree Gauss-Kruger zone 28",9001,4214,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+2405,"Beijing 1954 / 3-degree Gauss-Kruger zone 29",9001,4214,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+2406,"Beijing 1954 / 3-degree Gauss-Kruger zone 30",9001,4214,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+2407,"Beijing 1954 / 3-degree Gauss-Kruger zone 31",9001,4214,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+2408,"Beijing 1954 / 3-degree Gauss-Kruger zone 32",9001,4214,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+2409,"Beijing 1954 / 3-degree Gauss-Kruger zone 33",9001,4214,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+2410,"Beijing 1954 / 3-degree Gauss-Kruger zone 34",9001,4214,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,,
+2411,"Beijing 1954 / 3-degree Gauss-Kruger zone 35",9001,4214,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,,
+2412,"Beijing 1954 / 3-degree Gauss-Kruger zone 36",9001,4214,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,,
+2413,"Beijing 1954 / 3-degree Gauss-Kruger zone 37",9001,4214,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,,
+2414,"Beijing 1954 / 3-degree Gauss-Kruger zone 38",9001,4214,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,,
+2415,"Beijing 1954 / 3-degree Gauss-Kruger zone 39",9001,4214,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,,
+2416,"Beijing 1954 / 3-degree Gauss-Kruger zone 40",9001,4214,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,,
+2417,"Beijing 1954 / 3-degree Gauss-Kruger zone 41",9001,4214,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,,
+2418,"Beijing 1954 / 3-degree Gauss-Kruger zone 42",9001,4214,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,,
+2419,"Beijing 1954 / 3-degree Gauss-Kruger zone 43",9001,4214,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,,
+2420,"Beijing 1954 / 3-degree Gauss-Kruger zone 44",9001,4214,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,,
+2421,"Beijing 1954 / 3-degree Gauss-Kruger zone 45",9001,4214,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,,
+2422,"Beijing 1954 / 3-degree Gauss-Kruger CM 75E",9001,4214,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2423,"Beijing 1954 / 3-degree Gauss-Kruger CM 78E",9001,4214,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2424,"Beijing 1954 / 3-degree Gauss-Kruger CM 81E",9001,4214,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2425,"Beijing 1954 / 3-degree Gauss-Kruger CM 84E",9001,4214,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2426,"Beijing 1954 / 3-degree Gauss-Kruger CM 87E",9001,4214,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2427,"Beijing 1954 / 3-degree Gauss-Kruger CM 90E",9001,4214,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2428,"Beijing 1954 / 3-degree Gauss-Kruger CM 93E",9001,4214,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2429,"Beijing 1954 / 3-degree Gauss-Kruger CM 96E",9001,4214,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2430,"Beijing 1954 / 3-degree Gauss-Kruger CM 99E",9001,4214,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2431,"Beijing 1954 / 3-degree Gauss-Kruger CM 102E",9001,4214,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2432,"Beijing 1954 / 3-degree Gauss-Kruger CM 105E",9001,4214,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2433,"Beijing 1954 / 3-degree Gauss-Kruger CM 108E",9001,4214,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2434,"Beijing 1954 / 3-degree Gauss-Kruger CM 111E",9001,4214,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2435,"Beijing 1954 / 3-degree Gauss-Kruger CM 114E",9001,4214,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2436,"Beijing 1954 / 3-degree Gauss-Kruger CM 117E",9001,4214,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2437,"Beijing 1954 / 3-degree Gauss-Kruger CM 120E",9001,4214,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2438,"Beijing 1954 / 3-degree Gauss-Kruger CM 123E",9001,4214,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2439,"Beijing 1954 / 3-degree Gauss-Kruger CM 126E",9001,4214,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2440,"Beijing 1954 / 3-degree Gauss-Kruger CM 129E",9001,4214,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2441,"Beijing 1954 / 3-degree Gauss-Kruger CM 132E",9001,4214,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2442,"Beijing 1954 / 3-degree Gauss-Kruger CM 135E",9001,4214,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2443,"JGD2000 / Japan Plane Rectangular CS I",9001,4612,17801,9807,1,0,4530,8801,33,9110,8802,129.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2444,"JGD2000 / Japan Plane Rectangular CS II",9001,4612,17802,9807,1,0,4530,8801,33,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2445,"JGD2000 / Japan Plane Rectangular CS III",9001,4612,17803,9807,1,0,4530,8801,36,9110,8802,132.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2446,"JGD2000 / Japan Plane Rectangular CS IV",9001,4612,17804,9807,1,0,4530,8801,33,9110,8802,133.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2447,"JGD2000 / Japan Plane Rectangular CS V",9001,4612,17805,9807,1,0,4530,8801,36,9110,8802,134.2,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2448,"JGD2000 / Japan Plane Rectangular CS VI",9001,4612,17806,9807,1,0,4530,8801,36,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2449,"JGD2000 / Japan Plane Rectangular CS VII",9001,4612,17807,9807,1,0,4530,8801,36,9110,8802,137.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2450,"JGD2000 / Japan Plane Rectangular CS VIII",9001,4612,17808,9807,1,0,4530,8801,36,9110,8802,138.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2451,"JGD2000 / Japan Plane Rectangular CS IX",9001,4612,17809,9807,1,0,4530,8801,36,9110,8802,139.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2452,"JGD2000 / Japan Plane Rectangular CS X",9001,4612,17810,9807,1,0,4530,8801,40,9110,8802,140.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2453,"JGD2000 / Japan Plane Rectangular CS XI",9001,4612,17811,9807,1,0,4530,8801,44,9110,8802,140.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2454,"JGD2000 / Japan Plane Rectangular CS XII",9001,4612,17812,9807,1,0,4530,8801,44,9110,8802,142.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2455,"JGD2000 / Japan Plane Rectangular CS XIII",9001,4612,17813,9807,1,0,4530,8801,44,9110,8802,144.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2456,"JGD2000 / Japan Plane Rectangular CS XIV",9001,4612,17814,9807,1,0,4530,8801,26,9110,8802,142,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2457,"JGD2000 / Japan Plane Rectangular CS XV",9001,4612,17815,9807,1,0,4530,8801,26,9110,8802,127.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2458,"JGD2000 / Japan Plane Rectangular CS XVI",9001,4612,17816,9807,1,0,4530,8801,26,9110,8802,124,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2459,"JGD2000 / Japan Plane Rectangular CS XVII",9001,4612,17817,9807,1,0,4530,8801,26,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2460,"JGD2000 / Japan Plane Rectangular CS XVIII",9001,4612,17818,9807,1,0,4530,8801,20,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2461,"JGD2000 / Japan Plane Rectangular CS XIX",9001,4612,17819,9807,1,0,4530,8801,26,9110,8802,154,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+2462,"Albanian 1987 / Gauss-Kruger zone 4",9001,4191,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+2463,"Pulkovo 1995 / Gauss-Kruger CM 21E",9001,4200,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2464,"Pulkovo 1995 / Gauss-Kruger CM 27E",9001,4200,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2465,"Pulkovo 1995 / Gauss-Kruger CM 33E",9001,4200,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2466,"Pulkovo 1995 / Gauss-Kruger CM 39E",9001,4200,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2467,"Pulkovo 1995 / Gauss-Kruger CM 45E",9001,4200,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2468,"Pulkovo 1995 / Gauss-Kruger CM 51E",9001,4200,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2469,"Pulkovo 1995 / Gauss-Kruger CM 57E",9001,4200,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2470,"Pulkovo 1995 / Gauss-Kruger CM 63E",9001,4200,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2471,"Pulkovo 1995 / Gauss-Kruger CM 69E",9001,4200,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2472,"Pulkovo 1995 / Gauss-Kruger CM 75E",9001,4200,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2473,"Pulkovo 1995 / Gauss-Kruger CM 81E",9001,4200,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2474,"Pulkovo 1995 / Gauss-Kruger CM 87E",9001,4200,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2475,"Pulkovo 1995 / Gauss-Kruger CM 93E",9001,4200,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2476,"Pulkovo 1995 / Gauss-Kruger CM 99E",9001,4200,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2477,"Pulkovo 1995 / Gauss-Kruger CM 105E",9001,4200,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2478,"Pulkovo 1995 / Gauss-Kruger CM 111E",9001,4200,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2479,"Pulkovo 1995 / Gauss-Kruger CM 117E",9001,4200,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2480,"Pulkovo 1995 / Gauss-Kruger CM 123E",9001,4200,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2481,"Pulkovo 1995 / Gauss-Kruger CM 129E",9001,4200,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2482,"Pulkovo 1995 / Gauss-Kruger CM 135E",9001,4200,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2483,"Pulkovo 1995 / Gauss-Kruger CM 141E",9001,4200,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2484,"Pulkovo 1995 / Gauss-Kruger CM 147E",9001,4200,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2485,"Pulkovo 1995 / Gauss-Kruger CM 153E",9001,4200,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2486,"Pulkovo 1995 / Gauss-Kruger CM 159E",9001,4200,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2487,"Pulkovo 1995 / Gauss-Kruger CM 165E",9001,4200,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2488,"Pulkovo 1995 / Gauss-Kruger CM 171E",9001,4200,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2489,"Pulkovo 1995 / Gauss-Kruger CM 177E",9001,4200,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2490,"Pulkovo 1995 / Gauss-Kruger CM 177W",9001,4200,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2491,"Pulkovo 1995 / Gauss-Kruger CM 171W",9001,4200,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2492,"Pulkovo 1942 / Gauss-Kruger CM 9E",9001,4284,16302,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2493,"Pulkovo 1942 / Gauss-Kruger CM 15E",9001,4284,16303,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2494,"Pulkovo 1942 / Gauss-Kruger CM 21E",9001,4284,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2495,"Pulkovo 1942 / Gauss-Kruger CM 27E",9001,4284,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2496,"Pulkovo 1942 / Gauss-Kruger CM 33E",9001,4284,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2497,"Pulkovo 1942 / Gauss-Kruger CM 39E",9001,4284,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2498,"Pulkovo 1942 / Gauss-Kruger CM 45E",9001,4284,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2499,"Pulkovo 1942 / Gauss-Kruger CM 51E",9001,4284,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2500,"Pulkovo 1942 / Gauss-Kruger CM 57E",9001,4284,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2501,"Pulkovo 1942 / Gauss-Kruger CM 63E",9001,4284,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2502,"Pulkovo 1942 / Gauss-Kruger CM 69E",9001,4284,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2503,"Pulkovo 1942 / Gauss-Kruger CM 75E",9001,4284,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2504,"Pulkovo 1942 / Gauss-Kruger CM 81E",9001,4284,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2505,"Pulkovo 1942 / Gauss-Kruger CM 87E",9001,4284,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2506,"Pulkovo 1942 / Gauss-Kruger CM 93E",9001,4284,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2507,"Pulkovo 1942 / Gauss-Kruger CM 99E",9001,4284,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2508,"Pulkovo 1942 / Gauss-Kruger CM 105E",9001,4284,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2509,"Pulkovo 1942 / Gauss-Kruger CM 111E",9001,4284,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2510,"Pulkovo 1942 / Gauss-Kruger CM 117E",9001,4284,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2511,"Pulkovo 1942 / Gauss-Kruger CM 123E",9001,4284,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2512,"Pulkovo 1942 / Gauss-Kruger CM 129E",9001,4284,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2513,"Pulkovo 1942 / Gauss-Kruger CM 135E",9001,4284,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2514,"Pulkovo 1942 / Gauss-Kruger CM 141E",9001,4284,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2515,"Pulkovo 1942 / Gauss-Kruger CM 147E",9001,4284,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2516,"Pulkovo 1942 / Gauss-Kruger CM 153E",9001,4284,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2517,"Pulkovo 1942 / Gauss-Kruger CM 159E",9001,4284,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2518,"Pulkovo 1942 / Gauss-Kruger CM 165E",9001,4284,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2519,"Pulkovo 1942 / Gauss-Kruger CM 171E",9001,4284,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2520,"Pulkovo 1942 / Gauss-Kruger CM 177E",9001,4284,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2521,"Pulkovo 1942 / Gauss-Kruger CM 177W",9001,4284,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2522,"Pulkovo 1942 / Gauss-Kruger CM 171W",9001,4284,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2523,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 7",9001,4284,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+2524,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 8",9001,4284,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+2525,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 9",9001,4284,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+2526,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 10",9001,4284,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+2527,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 11",9001,4284,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+2528,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 12",9001,4284,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+2529,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 13",9001,4284,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+2530,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 14",9001,4284,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+2531,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 15",9001,4284,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+2532,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 16",9001,4284,16276,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+2533,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 17",9001,4284,16277,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+2534,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 18",9001,4284,16278,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+2535,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 19",9001,4284,16279,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+2536,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 20",9001,4284,16280,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+2537,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 21",9001,4284,16281,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+2538,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 22",9001,4284,16282,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+2539,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 23",9001,4284,16283,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+2540,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 24",9001,4284,16284,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,,
+2541,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 25",9001,4284,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+2542,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 26",9001,4284,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+2543,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 27",9001,4284,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+2544,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 28",9001,4284,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+2545,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 29",9001,4284,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+2546,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 30",9001,4284,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+2547,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 31",9001,4284,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+2548,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 32",9001,4284,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+2549,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 33",9001,4284,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+2550,"Samboja / UTM zone 50S",9001,4125,16150,9807,1,1,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2551,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 34",9001,4284,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,,
+2552,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 35",9001,4284,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,,
+2553,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 36",9001,4284,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,,
+2554,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 37",9001,4284,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,,
+2555,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 38",9001,4284,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,,
+2556,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 39",9001,4284,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,,
+2557,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 40",9001,4284,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,,
+2558,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 41",9001,4284,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,,
+2559,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 42",9001,4284,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,,
+2560,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 43",9001,4284,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,,
+2561,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 44",9001,4284,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,,
+2562,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 45",9001,4284,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,,
+2563,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 46",9001,4284,16076,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,46500000,9001,8807,0,9001,,,,,,,,,,,,,
+2564,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 47",9001,4284,16077,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,47500000,9001,8807,0,9001,,,,,,,,,,,,,
+2565,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 48",9001,4284,16078,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,48500000,9001,8807,0,9001,,,,,,,,,,,,,
+2566,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 49",9001,4284,16079,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,49500000,9001,8807,0,9001,,,,,,,,,,,,,
+2567,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 50",9001,4284,16080,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,50500000,9001,8807,0,9001,,,,,,,,,,,,,
+2568,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 51",9001,4284,16081,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,51500000,9001,8807,0,9001,,,,,,,,,,,,,
+2569,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 52",9001,4284,16082,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,52500000,9001,8807,0,9001,,,,,,,,,,,,,
+2570,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 53",9001,4284,16083,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,53500000,9001,8807,0,9001,,,,,,,,,,,,,
+2571,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 54",9001,4284,16084,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,54500000,9001,8807,0,9001,,,,,,,,,,,,,
+2572,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 55",9001,4284,16085,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,55500000,9001,8807,0,9001,,,,,,,,,,,,,
+2573,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 56",9001,4284,16086,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,56500000,9001,8807,0,9001,,,,,,,,,,,,,
+2574,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 57",9001,4284,16087,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,57500000,9001,8807,0,9001,,,,,,,,,,,,,
+2575,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 58",9001,4284,16088,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,58500000,9001,8807,0,9001,,,,,,,,,,,,,
+2576,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 59",9001,4284,16089,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,59500000,9001,8807,0,9001,,,,,,,,,,,,,
+2577,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60",9001,4284,16090,9807,1,1,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60000000,9001,8807,0,9001,,,,,,,,,,,,,
+2578,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 61",9001,4284,16091,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,61500000,9001,8807,0,9001,,,,,,,,,,,,,
+2579,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 62",9001,4284,16092,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,62500000,9001,8807,0,9001,,,,,,,,,,,,,
+2580,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 63",9001,4284,16093,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,63500000,9001,8807,0,9001,,,,,,,,,,,,,
+2581,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 64",9001,4284,16094,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,64500000,9001,8807,0,9001,,,,,,,,,,,,,
+2582,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E",9001,4284,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2583,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E",9001,4284,16368,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2584,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E",9001,4284,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2585,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E",9001,4284,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2586,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E",9001,4284,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2587,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E",9001,4284,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2588,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E",9001,4284,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2589,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E",9001,4284,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2590,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E",9001,4284,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2591,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E",9001,4284,16376,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2592,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E",9001,4284,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2593,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E",9001,4284,16378,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2594,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E",9001,4284,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2595,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E",9001,4284,16380,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2596,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E",9001,4284,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2597,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E",9001,4284,16382,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2598,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E",9001,4284,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2599,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E",9001,4284,16384,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2600,Lietuvos Koordinoei Sistema 1994,9001,4669,19934,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,0.9998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2601,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E",9001,4284,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2602,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E",9001,4284,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2603,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E",9001,4284,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2604,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E",9001,4284,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2605,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E",9001,4284,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2606,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E",9001,4284,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2607,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E",9001,4284,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2608,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E",9001,4284,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2609,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E",9001,4284,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2610,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E",9001,4284,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2611,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E",9001,4284,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2612,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E",9001,4284,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2613,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E",9001,4284,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2614,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E",9001,4284,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2615,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E",9001,4284,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2616,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E",9001,4284,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2617,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E",9001,4284,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2618,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E",9001,4284,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2619,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E",9001,4284,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2620,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E",9001,4284,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2621,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E",9001,4284,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2622,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E",9001,4284,16176,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2623,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E",9001,4284,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2624,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E",9001,4284,16178,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2625,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E",9001,4284,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2626,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E",9001,4284,16180,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2627,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E",9001,4284,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2628,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E",9001,4284,16182,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2629,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E",9001,4284,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2630,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E",9001,4284,16184,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2631,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E",9001,4284,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2632,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E",9001,4284,16186,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2633,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E",9001,4284,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2634,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E",9001,4284,16188,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2635,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E",9001,4284,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2636,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E",9001,4284,16190,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2637,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W",9001,4284,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2638,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W",9001,4284,16192,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2639,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W",9001,4284,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2640,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W",9001,4284,16194,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2641,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 7",9001,4200,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+2642,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 8",9001,4200,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+2643,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 9",9001,4200,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+2644,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 10",9001,4200,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+2645,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 11",9001,4200,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+2646,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 12",9001,4200,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+2647,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 13",9001,4200,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+2648,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 14",9001,4200,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+2649,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 15",9001,4200,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+2650,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 16",9001,4200,16276,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+2651,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 17",9001,4200,16277,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+2652,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 18",9001,4200,16278,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+2653,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 19",9001,4200,16279,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+2654,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 20",9001,4200,16280,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+2655,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 21",9001,4200,16281,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+2656,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 22",9001,4200,16282,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+2657,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 23",9001,4200,16283,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+2658,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 24",9001,4200,16284,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,,
+2659,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 25",9001,4200,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+2660,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 26",9001,4200,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+2661,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 27",9001,4200,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+2662,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 28",9001,4200,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+2663,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 29",9001,4200,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+2664,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 30",9001,4200,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+2665,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 31",9001,4200,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+2666,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 32",9001,4200,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+2667,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 33",9001,4200,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+2668,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 34",9001,4200,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,,
+2669,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 35",9001,4200,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,,
+2670,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 36",9001,4200,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,,
+2671,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 37",9001,4200,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,,
+2672,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 38",9001,4200,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,,
+2673,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 39",9001,4200,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,,
+2674,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 40",9001,4200,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,,
+2675,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 41",9001,4200,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,,
+2676,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 42",9001,4200,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,,
+2677,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 43",9001,4200,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,,
+2678,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 44",9001,4200,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,,
+2679,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 45",9001,4200,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,,
+2680,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 46",9001,4200,16076,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,46500000,9001,8807,0,9001,,,,,,,,,,,,,
+2681,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 47",9001,4200,16077,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,47500000,9001,8807,0,9001,,,,,,,,,,,,,
+2682,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 48",9001,4200,16078,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,48500000,9001,8807,0,9001,,,,,,,,,,,,,
+2683,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 49",9001,4200,16079,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,49500000,9001,8807,0,9001,,,,,,,,,,,,,
+2684,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 50",9001,4200,16080,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,50500000,9001,8807,0,9001,,,,,,,,,,,,,
+2685,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 51",9001,4200,16081,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,51500000,9001,8807,0,9001,,,,,,,,,,,,,
+2686,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 52",9001,4200,16082,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,52500000,9001,8807,0,9001,,,,,,,,,,,,,
+2687,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 53",9001,4200,16083,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,53500000,9001,8807,0,9001,,,,,,,,,,,,,
+2688,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 54",9001,4200,16084,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,54500000,9001,8807,0,9001,,,,,,,,,,,,,
+2689,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 55",9001,4200,16085,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,55500000,9001,8807,0,9001,,,,,,,,,,,,,
+2690,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 56",9001,4200,16086,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,56500000,9001,8807,0,9001,,,,,,,,,,,,,
+2691,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 57",9001,4200,16087,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,57500000,9001,8807,0,9001,,,,,,,,,,,,,
+2692,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 58",9001,4200,16088,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,58500000,9001,8807,0,9001,,,,,,,,,,,,,
+2693,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 59",9001,4200,16089,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,59500000,9001,8807,0,9001,,,,,,,,,,,,,
+2694,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",9001,4200,16090,9807,1,1,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60000000,9001,8807,0,9001,,,,,,,,,,,,,
+2695,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 61",9001,4200,16091,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,61500000,9001,8807,0,9001,,,,,,,,,,,,,
+2696,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 62",9001,4200,16092,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,62500000,9001,8807,0,9001,,,,,,,,,,,,,
+2697,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 63",9001,4200,16093,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,63500000,9001,8807,0,9001,,,,,,,,,,,,,
+2698,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 64",9001,4200,16094,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,64500000,9001,8807,0,9001,,,,,,,,,,,,,
+2699,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E",9001,4200,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2700,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E",9001,4200,16368,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2701,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E",9001,4200,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2702,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E",9001,4200,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2703,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E",9001,4200,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2704,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E",9001,4200,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2705,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E",9001,4200,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2706,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E",9001,4200,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2707,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E",9001,4200,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2708,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E",9001,4200,16376,9807,1,0,4530,8801,0,9102,8802,48,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2709,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E",9001,4200,16309,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2710,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E",9001,4200,16378,9807,1,0,4530,8801,0,9102,8802,54,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2711,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E",9001,4200,16310,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2712,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E",9001,4200,16380,9807,1,0,4530,8801,0,9102,8802,60,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2713,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E",9001,4200,16311,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2714,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E",9001,4200,16382,9807,1,0,4530,8801,0,9102,8802,66,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2715,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E",9001,4200,16312,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2716,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E",9001,4200,16384,9807,1,0,4530,8801,0,9102,8802,72,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2717,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E",9001,4200,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2718,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E",9001,4200,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2719,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E",9001,4200,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2720,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E",9001,4200,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2721,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E",9001,4200,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2722,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E",9001,4200,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2723,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E",9001,4200,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2724,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E",9001,4200,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2725,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E",9001,4200,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2726,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E",9001,4200,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2727,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E",9001,4200,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2728,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E",9001,4200,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2729,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E",9001,4200,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2730,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E",9001,4200,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2731,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E",9001,4200,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2732,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E",9001,4200,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2733,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E",9001,4200,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2734,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E",9001,4200,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2735,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E",9001,4200,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2736,"Tete / UTM zone 36S",9001,4127,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2737,"Tete / UTM zone 37S",9001,4127,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2738,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E",9001,4200,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2739,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E",9001,4200,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2740,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E",9001,4200,16176,9807,1,0,4530,8801,0,9102,8802,138,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2741,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E",9001,4200,16324,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2742,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E",9001,4200,16178,9807,1,0,4530,8801,0,9102,8802,144,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2743,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E",9001,4200,16325,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2744,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E",9001,4200,16180,9807,1,0,4530,8801,0,9102,8802,150,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2745,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E",9001,4200,16326,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2746,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E",9001,4200,16182,9807,1,0,4530,8801,0,9102,8802,156,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2747,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E",9001,4200,16327,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2748,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E",9001,4200,16184,9807,1,0,4530,8801,0,9102,8802,162,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2749,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E",9001,4200,16328,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2750,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E",9001,4200,16186,9807,1,0,4530,8801,0,9102,8802,168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2751,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E",9001,4200,16329,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2752,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E",9001,4200,16188,9807,1,0,4530,8801,0,9102,8802,174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2753,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E",9001,4200,16330,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2754,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E",9001,4200,16190,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2755,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W",9001,4200,16331,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2756,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W",9001,4200,16192,9807,1,0,4530,8801,0,9102,8802,-174,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2757,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W",9001,4200,16332,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2758,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W",9001,4200,16194,9807,1,0,4530,8801,0,9102,8802,-168,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2759,"NAD83(HARN) / Alabama East",9001,4152,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2760,"NAD83(HARN) / Alabama West",9001,4152,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+2761,"NAD83(HARN) / Arizona East",9001,4152,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+2762,"NAD83(HARN) / Arizona Central",9001,4152,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+2763,"NAD83(HARN) / Arizona West",9001,4152,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+2764,"NAD83(HARN) / Arkansas North",9001,4152,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+2765,"NAD83(HARN) / Arkansas South",9001,4152,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+2766,"NAD83(HARN) / California zone 1",9001,4152,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+2767,"NAD83(HARN) / California zone 2",9001,4152,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+2768,"NAD83(HARN) / California zone 3",9001,4152,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+2769,"NAD83(HARN) / California zone 4",9001,4152,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+2770,"NAD83(HARN) / California zone 5",9001,4152,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+2771,"NAD83(HARN) / California zone 6",9001,4152,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+2772,"NAD83(HARN) / Colorado North",9001,4152,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+2773,"NAD83(HARN) / Colorado Central",9001,4152,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+2774,"NAD83(HARN) / Colorado South",9001,4152,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+2775,"NAD83(HARN) / Connecticut",9001,4152,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,,
+2776,"NAD83(HARN) / Delaware",9001,4152,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2777,"NAD83(HARN) / Florida East",9001,4152,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2778,"NAD83(HARN) / Florida West",9001,4152,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2779,"NAD83(HARN) / Florida North",9001,4152,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2780,"NAD83(HARN) / Georgia East",9001,4152,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2781,"NAD83(HARN) / Georgia West",9001,4152,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+2782,"NAD83(HARN) / Hawaii zone 1",9001,4152,15131,9807,1,0,4499,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2783,"NAD83(HARN) / Hawaii zone 2",9001,4152,15132,9807,1,0,4499,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2784,"NAD83(HARN) / Hawaii zone 3",9001,4152,15133,9807,1,0,4499,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2785,"NAD83(HARN) / Hawaii zone 4",9001,4152,15134,9807,1,0,4499,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2786,"NAD83(HARN) / Hawaii zone 5",9001,4152,15135,9807,1,0,4499,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2787,"NAD83(HARN) / Idaho East",9001,4152,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2788,"NAD83(HARN) / Idaho Central",9001,4152,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2789,"NAD83(HARN) / Idaho West",9001,4152,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,,
+2790,"NAD83(HARN) / Illinois East",9001,4152,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+2791,"NAD83(HARN) / Illinois West",9001,4152,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+2792,"NAD83(HARN) / Indiana East",9001,4152,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,,
+2793,"NAD83(HARN) / Indiana West",9001,4152,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,,
+2794,"NAD83(HARN) / Iowa North",9001,4152,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+2795,"NAD83(HARN) / Iowa South",9001,4152,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2796,"NAD83(HARN) / Kansas North",9001,4152,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+2797,"NAD83(HARN) / Kansas South",9001,4152,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+2798,"NAD83(HARN) / Kentucky North",9001,4152,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2799,"NAD83(HARN) / Kentucky South",9001,4152,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+2800,"NAD83(HARN) / Louisiana North",9001,4152,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+2801,"NAD83(HARN) / Louisiana South",9001,4152,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+2802,"NAD83(HARN) / Maine East",9001,4152,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+2803,"NAD83(HARN) / Maine West",9001,4152,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,,
+2804,"NAD83(HARN) / Maryland",9001,4152,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+2805,"NAD83(HARN) / Massachusetts Mainland",9001,4152,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,,
+2806,"NAD83(HARN) / Massachusetts Island",9001,4152,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2807,"NAD83(HARN) / Michigan North",9001,4152,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,,
+2808,"NAD83(HARN) / Michigan Central",9001,4152,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,,
+2809,"NAD83(HARN) / Michigan South",9001,4152,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,,
+2810,"NAD83(HARN) / Minnesota North",9001,4152,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+2811,"NAD83(HARN) / Minnesota Central",9001,4152,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+2812,"NAD83(HARN) / Minnesota South",9001,4152,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+2813,"NAD83(HARN) / Mississippi East",9001,4152,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+2814,"NAD83(HARN) / Mississippi West",9001,4152,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+2815,"NAD83(HARN) / Missouri East",9001,4152,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+2816,"NAD83(HARN) / Missouri Central",9001,4152,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2817,"NAD83(HARN) / Missouri West",9001,4152,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,,
+2818,"NAD83(HARN) / Montana",9001,4152,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2819,"NAD83(HARN) / Nebraska",9001,4152,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2820,"NAD83(HARN) / Nevada East",9001,4152,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,,
+2821,"NAD83(HARN) / Nevada Central",9001,4152,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,,
+2822,"NAD83(HARN) / Nevada West",9001,4152,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,,
+2823,"NAD83(HARN) / New Hampshire",9001,4152,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+2824,"NAD83(HARN) / New Jersey",9001,4152,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+2825,"NAD83(HARN) / New Mexico East",9001,4152,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,,
+2826,"NAD83(HARN) / New Mexico Central",9001,4152,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2827,"NAD83(HARN) / New Mexico West",9001,4152,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,,
+2828,"NAD83(HARN) / New York East",9001,4152,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+2829,"NAD83(HARN) / New York Central",9001,4152,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+2830,"NAD83(HARN) / New York West",9001,4152,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,,
+2831,"NAD83(HARN) / New York Long Island",9001,4152,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,,
+2832,"NAD83(HARN) / North Dakota North",9001,4152,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2833,"NAD83(HARN) / North Dakota South",9001,4152,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2834,"NAD83(HARN) / Ohio North",9001,4152,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2835,"NAD83(HARN) / Ohio South",9001,4152,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2836,"NAD83(HARN) / Oklahoma North",9001,4152,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2837,"NAD83(HARN) / Oklahoma South",9001,4152,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2838,"NAD83(HARN) / Oregon North",9001,4152,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+2839,"NAD83(HARN) / Oregon South",9001,4152,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,,
+2840,"NAD83(HARN) / Rhode Island",9001,4152,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,,
+2841,"NAD83(HARN) / South Dakota North",9001,4152,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2842,"NAD83(HARN) / South Dakota South",9001,4152,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2843,"NAD83(HARN) / Tennessee",9001,4152,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2844,"NAD83(HARN) / Texas North",9001,4152,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,,
+2845,"NAD83(HARN) / Texas North Central",9001,4152,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,,
+2846,"NAD83(HARN) / Texas Central",9001,4152,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,,
+2847,"NAD83(HARN) / Texas South Central",9001,4152,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,,
+2848,"NAD83(HARN) / Texas South",9001,4152,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,,
+2849,"NAD83(HARN) / Utah North",9001,4152,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,,
+2850,"NAD83(HARN) / Utah Central",9001,4152,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,,
+2851,"NAD83(HARN) / Utah South",9001,4152,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,,
+2852,"NAD83(HARN) / Vermont",9001,4152,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2853,"NAD83(HARN) / Virginia North",9001,4152,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,,
+2854,"NAD83(HARN) / Virginia South",9001,4152,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,,
+2855,"NAD83(HARN) / Washington North",9001,4152,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2856,"NAD83(HARN) / Washington South",9001,4152,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+2857,"NAD83(HARN) / West Virginia North",9001,4152,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2858,"NAD83(HARN) / West Virginia South",9001,4152,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2859,"NAD83(HARN) / Wisconsin North",9001,4152,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2860,"NAD83(HARN) / Wisconsin Central",9001,4152,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2861,"NAD83(HARN) / Wisconsin South",9001,4152,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+2862,"NAD83(HARN) / Wyoming East",9001,4152,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+2863,"NAD83(HARN) / Wyoming East Central",9001,4152,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,,
+2864,"NAD83(HARN) / Wyoming West Central",9001,4152,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+2865,"NAD83(HARN) / Wyoming West",9001,4152,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,,
+2866,"NAD83(HARN) / Puerto Rico and Virgin Is.",9001,4152,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,,
+2867,"NAD83(HARN) / Arizona East (ft)",9002,4152,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+2868,"NAD83(HARN) / Arizona Central (ft)",9002,4152,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+2869,"NAD83(HARN) / Arizona West (ft)",9002,4152,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+2870,"NAD83(HARN) / California zone 1 (ftUS)",9003,4152,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2871,"NAD83(HARN) / California zone 2 (ftUS)",9003,4152,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2872,"NAD83(HARN) / California zone 3 (ftUS)",9003,4152,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2873,"NAD83(HARN) / California zone 4 (ftUS)",9003,4152,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2874,"NAD83(HARN) / California zone 5 (ftUS)",9003,4152,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2875,"NAD83(HARN) / California zone 6 (ftUS)",9003,4152,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2876,"NAD83(HARN) / Colorado North (ftUS)",9003,4152,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+2877,"NAD83(HARN) / Colorado Central (ftUS)",9003,4152,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+2878,"NAD83(HARN) / Colorado South (ftUS)",9003,4152,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+2879,"NAD83(HARN) / Connecticut (ftUS)",9003,4152,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,,
+2880,"NAD83(HARN) / Delaware (ftUS)",9003,4152,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2881,"NAD83(HARN) / Florida East (ftUS)",9003,4152,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2882,"NAD83(HARN) / Florida West (ftUS)",9003,4152,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2883,"NAD83(HARN) / Florida North (ftUS)",9003,4152,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2884,"NAD83(HARN) / Georgia East (ftUS)",9003,4152,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2885,"NAD83(HARN) / Georgia West (ftUS)",9003,4152,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+2886,"NAD83(HARN) / Idaho East (ftUS)",9003,4152,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+2887,"NAD83(HARN) / Idaho Central (ftUS)",9003,4152,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+2888,"NAD83(HARN) / Idaho West (ftUS)",9003,4152,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,,
+2889,"NAD83(HARN) / Indiana East (ftUS)",9003,4152,15326,9807,1,1,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,818125,9003,,,,,,,,,,,,,
+2890,"NAD83(HARN) / Indiana West (ftUS)",9003,4152,15327,9807,1,1,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,818125,9003,,,,,,,,,,,,,
+2891,"NAD83(HARN) / Kentucky North (ftUS)",9003,4152,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2892,"NAD83(HARN) / Kentucky South (ftUS)",9003,4152,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,,
+2893,"NAD83(HARN) / Maryland (ftUS)",9003,4152,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,,
+2894,"NAD83(HARN) / Massachusetts Mainland (ftUS)",9003,4152,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,,
+2895,"NAD83(HARN) / Massachusetts Island (ftUS)",9003,4152,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2896,"NAD83(HARN) / Michigan North (ft)",9002,4152,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,,
+2897,"NAD83(HARN) / Michigan Central (ft)",9002,4152,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,,
+2898,"NAD83(HARN) / Michigan South (ft)",9002,4152,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,,
+2899,"NAD83(HARN) / Mississippi East (ftUS)",9003,4152,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+2900,"NAD83(HARN) / Mississippi West (ftUS)",9003,4152,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+2901,"NAD83(HARN) / Montana (ft)",9002,4152,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+2902,"NAD83(HARN) / New Mexico East (ftUS)",9003,4152,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,,
+2903,"NAD83(HARN) / New Mexico Central (ftUS)",9003,4152,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+2904,"NAD83(HARN) / New Mexico West (ftUS)",9003,4152,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,,
+2905,"NAD83(HARN) / New York East (ftUS)",9003,4152,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+2906,"NAD83(HARN) / New York Central (ftUS)",9003,4152,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,,
+2907,"NAD83(HARN) / New York West (ftUS)",9003,4152,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,,
+2908,"NAD83(HARN) / New York Long Island (ftUS)",9003,4152,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,,
+2909,"NAD83(HARN) / North Dakota North (ft)",9002,4152,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+2910,"NAD83(HARN) / North Dakota South (ft)",9002,4152,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+2911,"NAD83(HARN) / Oklahoma North (ftUS)",9003,4152,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2912,"NAD83(HARN) / Oklahoma South (ftUS)",9003,4152,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2913,"NAD83(HARN) / Oregon North (ft)",9002,4152,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,,
+2914,"NAD83(HARN) / Oregon South (ft)",9002,4152,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,,
+2915,"NAD83(HARN) / Tennessee (ftUS)",9003,4152,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2916,"NAD83(HARN) / Texas North (ftUS)",9003,4152,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,,
+2917,"NAD83(HARN) / Texas North Central (ftUS)",9003,4152,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,,
+2918,"NAD83(HARN) / Texas Central (ftUS)",9003,4152,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,,
+2919,"NAD83(HARN) / Texas South Central (ftUS)",9003,4152,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,,
+2920,"NAD83(HARN) / Texas South (ftUS)",9003,4152,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,,
+2921,"NAD83(HARN) / Utah North (ft)",9002,4152,15362,9802,0,0,4495,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640419.948,9002,8827,3280839.895,9002,,,,,,,,,,
+2922,"NAD83(HARN) / Utah Central (ft)",9002,4152,15363,9802,0,0,4495,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640419.948,9002,8827,6561679.79,9002,,,,,,,,,,
+2923,"NAD83(HARN) / Utah South (ft)",9002,4152,15364,9802,0,0,4495,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640419.948,9002,8827,9842519.685,9002,,,,,,,,,,
+2924,"NAD83(HARN) / Virginia North (ftUS)",9003,4152,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,,
+2925,"NAD83(HARN) / Virginia South (ftUS)",9003,4152,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,,
+2926,"NAD83(HARN) / Washington North (ftUS)",9003,4152,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2927,"NAD83(HARN) / Washington South (ftUS)",9003,4152,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+2928,"NAD83(HARN) / Wisconsin North (ftUS)",9003,4152,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2929,"NAD83(HARN) / Wisconsin Central (ftUS)",9003,4152,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2930,"NAD83(HARN) / Wisconsin South (ftUS)",9003,4152,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+2931,"Beduaram / TM 13 NE",9001,4213,16413,9807,1,0,4499,8801,0,9102,8802,13,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2932,"QND95 / Qatar National Grid",9001,4614,19919,9807,1,0,4400,8801,24.27,9110,8802,51.13,9110,8805,0.99999,9201,8806,200000,9001,8807,300000,9001,,,,,,,,,,,,,
+2933,"Segara / UTM zone 50S",9001,4613,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2934,"Segara (Jakarta) / NEIEZ",9001,4820,19905,9804,1,1,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+2935,"Pulkovo 1942 / CS63 zone A1",9001,4284,18441,9807,1,0,4530,8801,0.07,9110,8802,41.32,9110,8805,1,9201,8806,1300000,9001,8807,0,9001,,,,,,,,,,,,,
+2936,"Pulkovo 1942 / CS63 zone A2",9001,4284,18442,9807,1,0,4530,8801,0.07,9110,8802,44.32,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,,,,,,,,,
+2937,"Pulkovo 1942 / CS63 zone A3",9001,4284,18443,9807,1,0,4530,8801,0.07,9110,8802,47.32,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,,,,,,,,,
+2938,"Pulkovo 1942 / CS63 zone A4",9001,4284,18444,9807,1,0,4530,8801,0.07,9110,8802,50.32,9110,8805,1,9201,8806,4300000,9001,8807,0,9001,,,,,,,,,,,,,
+2939,"Pulkovo 1942 / CS63 zone K2",9001,4284,18446,9807,1,0,4530,8801,0.08,9110,8802,50.46,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,,,,,,,,,
+2940,"Pulkovo 1942 / CS63 zone K3",9001,4284,18447,9807,1,0,4530,8801,0.08,9110,8802,53.46,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,,,,,,,,,
+2941,"Pulkovo 1942 / CS63 zone K4",9001,4284,18448,9807,1,0,4530,8801,0.08,9110,8802,56.46,9110,8805,1,9201,8806,4300000,9001,8807,0,9001,,,,,,,,,,,,,
+2942,"Porto Santo / UTM zone 28N",9001,4615,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2943,"Selvagem Grande / UTM zone 28N",9001,4616,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2944,"NAD83(CSRS) / SCoPQ zone 2",9001,4617,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2945,"NAD83(CSRS) / MTM zone 3",9001,4617,17703,9807,1,0,4496,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2946,"NAD83(CSRS) / MTM zone 4",9001,4617,17704,9807,1,0,4496,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2947,"NAD83(CSRS) / MTM zone 5",9001,4617,17705,9807,1,0,4496,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2948,"NAD83(CSRS) / MTM zone 6",9001,4617,17706,9807,1,0,4496,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2949,"NAD83(CSRS) / MTM zone 7",9001,4617,17707,9807,1,0,4496,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2950,"NAD83(CSRS) / MTM zone 8",9001,4617,17708,9807,1,0,4496,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2951,"NAD83(CSRS) / MTM zone 9",9001,4617,17709,9807,1,0,4496,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2952,"NAD83(CSRS) / MTM zone 10",9001,4617,17710,9807,1,0,4496,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+2953,"NAD83(CSRS) / New Brunswick Stereographic",9001,4617,19946,9809,1,0,4500,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,2500000,9001,8807,7500000,9001,,,,,,,,,,,,,
+2954,"NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83)",9001,4617,19960,9809,1,0,4496,8801,47.15,9110,8802,-63,9110,8805,0.999912,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+2955,"NAD83(CSRS) / UTM zone 11N",9001,4617,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2956,"NAD83(CSRS) / UTM zone 12N",9001,4617,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2957,"NAD83(CSRS) / UTM zone 13N",9001,4617,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2958,"NAD83(CSRS) / UTM zone 17N",9001,4617,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2959,"NAD83(CSRS) / UTM zone 18N",9001,4617,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2960,"NAD83(CSRS) / UTM zone 19N",9001,4617,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2961,"NAD83(CSRS) / UTM zone 20N",9001,4617,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2962,"NAD83(CSRS) / UTM zone 21N",9001,4617,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2963,"Lisbon 1890 (Lisbon) / Portugal Bonne",9001,4904,19979,9828,1,0,6509,8801,39.4,9110,8802,1,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+2964,"NAD27 / Alaska Albers",9003,4267,15020,9822,1,0,4497,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9003,8827,0,9003,,,,,,,,,,
+2965,"NAD83 / Indiana East (ftUS)",9003,4269,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,,
+2966,"NAD83 / Indiana West (ftUS)",9003,4269,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,,
+2967,"NAD83(HARN) / Indiana East (ftUS)",9003,4152,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,,
+2968,"NAD83(HARN) / Indiana West (ftUS)",9003,4152,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,,
+2969,"Fort Marigot / UTM zone 20N",9001,4621,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2970,"Guadeloupe 1948 / UTM zone 20N",9001,4622,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2971,"CSG67 / UTM zone 22N",9001,4623,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2972,"RGFG95 / UTM zone 22N",9001,4624,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2973,"Martinique 1938 / UTM zone 20N",9001,4625,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2975,"RGR92 / UTM zone 40S",9001,4627,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2976,"Tahiti 52 / UTM zone 6S",9001,4628,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2977,"Tahaa 54 / UTM zone 5S",9001,4629,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2978,"IGN72 Nuku Hiva / UTM zone 7S",9001,4630,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2979,"K0 1949 / UTM zone 42S",9001,4631,16142,9807,1,1,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2980,"Combani 1950 / UTM zone 38S",9001,4632,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2981,"IGN56 Lifou / UTM zone 58S",9001,4633,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2982,"IGN72 Grand Terre / UTM zone 58S",9001,4634,16158,9807,1,1,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2983,"ST87 Ouvea / UTM zone 58S",9001,4635,16158,9807,1,1,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2984,"RGNC 1991 / Lambert New Caledonia",9001,4645,19981,9802,1,1,4499,8821,-21.3,9110,8822,166,9110,8823,-20.4,9110,8824,-22.2,9110,8826,400000,9001,8827,300000,9001,,,,,,,,,,
+2985,"Petrels 1972 / Terre Adelie Polar Stereographic",9001,4636,19983,9830,1,0,1025,8826,300000,9001,8827,200000,9001,8832,-67,9102,8833,140,9102,,,,,,,,,,,,,,,,
+2986,"Perroud 1950 / Terre Adelie Polar Stereographic",9001,4637,19983,9830,1,0,1025,8826,300000,9001,8827,200000,9001,8832,-67,9102,8833,140,9102,,,,,,,,,,,,,,,,
+2987,"Saint Pierre et Miquelon 1950 / UTM zone 21N",9001,4638,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2988,"MOP78 / UTM zone 1S",9001,4639,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2989,"RRAF 1991 / UTM zone 20N",9001,4640,16020,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+2990,"Reunion 1947 / TM Reunion",9001,4626,19982,9807,1,1,4499,8801,-21.07,9110,8802,55.32,9110,8805,1,9201,8806,50000,9001,8807,160000,9001,,,,,,,,,,,,,
+2991,"NAD83 / Oregon LCC (m)",9001,4269,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+2992,"NAD83 / Oregon GIC Lambert (ft)",9002,4269,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,,
+2993,"NAD83(HARN) / Oregon LCC (m)",9001,4152,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+2994,"NAD83(HARN) / Oregon GIC Lambert (ft)",9002,4152,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,,
+2995,"IGN53 Mare / UTM zone 58S",9001,4641,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2996,"ST84 Ile des Pins / UTM zone 58S",9001,4642,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2997,"ST71 Belep / UTM zone 58S",9001,4643,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2998,"NEA74 Noumea / UTM zone 58S",9001,4644,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+2999,"Grand Comoros / UTM zone 38S",9001,4646,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3000,"Segara / NEIEZ",9001,4613,19905,9804,1,0,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+3001,"Batavia / NEIEZ",9001,4211,19905,9804,1,0,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+3002,"Makassar / NEIEZ",9001,4257,19905,9804,1,0,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+3003,"Monte Mario / Italy zone 1",9001,4265,18121,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3004,"Monte Mario / Italy zone 2",9001,4265,18122,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,2520000,9001,8807,0,9001,,,,,,,,,,,,,
+3005,"NAD83 / BC Albers",9001,4269,19984,9822,1,0,4400,8821,45,9102,8822,-126,9102,8823,50,9110,8824,58.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+3006,SWEREF99 TM,9001,4619,17333,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3007,SWEREF99 12 00,9001,4619,17321,9807,1,0,4500,8801,0,9102,8802,12,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3008,SWEREF99 13 30,9001,4619,17322,9807,1,0,4500,8801,0,9110,8802,13.3,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3009,SWEREF99 15 00,9001,4619,17323,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3010,SWEREF99 16 30,9001,4619,17324,9807,1,0,4500,8801,0,9110,8802,16.3,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3011,SWEREF99 18 00,9001,4619,17325,9807,1,0,4500,8801,0,9102,8802,18,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3012,SWEREF99 14 15,9001,4619,17326,9807,1,0,4500,8801,0,9110,8802,14.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3013,SWEREF99 15 45,9001,4619,17327,9807,1,0,4500,8801,0,9110,8802,15.45,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3014,SWEREF99 17 15,9001,4619,17328,9807,1,0,4500,8801,0,9110,8802,17.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3015,SWEREF99 18 45,9001,4619,17329,9807,1,0,4500,8801,0,9110,8802,18.45,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3016,SWEREF99 20 15,9001,4619,17330,9807,1,0,4500,8801,0,9110,8802,20.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3017,SWEREF99 21 45,9001,4619,17331,9807,1,0,4500,8801,0,9110,8802,21.45,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3018,SWEREF99 23 15,9001,4619,17332,9807,1,0,4500,8801,0,9110,8802,23.15,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3019,RT90 7.5 gon V,9001,4124,17334,9807,1,0,4530,8801,0,9110,8802,11.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3020,RT90 5 gon V,9001,4124,17335,9807,1,0,4530,8801,0,9110,8802,13.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3021,RT90 2.5 gon V,9001,4124,19929,9807,1,0,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3022,RT90 0 gon,9001,4124,17336,9807,1,0,4530,8801,0,9110,8802,18.03298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3023,RT90 2.5 gon O,9001,4124,17337,9807,1,0,4530,8801,0,9110,8802,20.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3024,RT90 5 gon O,9001,4124,17338,9807,1,0,4530,8801,0,9110,8802,22.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3025,RT38 7.5 gon V,9001,4308,17334,9807,1,0,4530,8801,0,9110,8802,11.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3026,RT38 5 gon V,9001,4308,17335,9807,1,0,4530,8801,0,9110,8802,13.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3027,RT38 2.5 gon V,9001,4308,19929,9807,1,0,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3028,RT38 0 gon,9001,4308,17336,9807,1,0,4530,8801,0,9110,8802,18.03298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3029,RT38 2.5 gon O,9001,4308,17337,9807,1,0,4530,8801,0,9110,8802,20.18298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3030,RT38 5 gon O,9001,4308,17338,9807,1,0,4530,8801,0,9110,8802,22.33298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+3031,"WGS 84 / Antarctic Polar Stereographic",9001,4326,19992,9829,1,0,4490,8806,0,9001,8807,0,9001,8832,-71,9102,8833,0,9102,,,,,,,,,,,,,,,,
+3032,"WGS 84 / Australian Antarctic Polar Stereographic",9001,4326,19993,9829,1,0,4489,8806,6000000,9001,8807,6000000,9001,8832,-71,9102,8833,70,9102,,,,,,,,,,,,,,,,
+3033,"WGS 84 / Australian Antarctic Lambert",9001,4326,19994,9802,1,0,4400,8821,-50,9110,8822,70,9110,8823,-68.3,9110,8824,-74.3,9110,8826,6000000,9001,8827,6000000,9001,,,,,,,,,,
+3034,"ETRS89 / LCC Europe",9001,4258,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,,
+3035,"ETRS89 / LAEA Europe",9001,4258,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,,
+3036,"Moznet / UTM zone 36S",9001,4130,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3037,"Moznet / UTM zone 37S",9001,4130,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3038,"ETRS89 / TM26",9001,4258,16026,9807,1,1,4500,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3039,"ETRS89 / TM27",9001,4258,16027,9807,1,1,4500,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3040,"ETRS89 / UTM zone 28N (N-E)",9001,4258,16028,9807,1,0,4500,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3041,"ETRS89 / UTM zone 29N (N-E)",9001,4258,16029,9807,1,0,4500,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3042,"ETRS89 / UTM zone 30N (N-E)",9001,4258,16030,9807,1,0,4500,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3043,"ETRS89 / UTM zone 31N (N-E)",9001,4258,16031,9807,1,0,4500,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3044,"ETRS89 / UTM zone 32N (N-E)",9001,4258,16032,9807,1,0,4500,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3045,"ETRS89 / UTM zone 33N (N-E)",9001,4258,16033,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3046,"ETRS89 / UTM zone 34N (N-E)",9001,4258,16034,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3047,"ETRS89 / UTM zone 35N (N-E)",9001,4258,16035,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3048,"ETRS89 / UTM zone 36N (N-E)",9001,4258,16036,9807,1,0,4500,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3049,"ETRS89 / UTM zone 37N (N-E)",9001,4258,16037,9807,1,0,4500,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3050,"ETRS89 / TM38",9001,4258,16038,9807,1,1,4500,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3051,"ETRS89 / TM39",9001,4258,16039,9807,1,1,4500,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3052,"Reykjavik 1900 / Lambert 1900",9001,4657,19987,9826,1,0,4491,8801,65,9110,8802,-19.011965,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3053,"Hjorsey 1955 / Lambert 1955",9001,4658,19988,9826,1,0,4491,8801,65,9102,8802,-18,9102,8805,1,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+3054,"Hjorsey 1955 / UTM zone 26N",9001,4658,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3055,"Hjorsey 1955 / UTM zone 27N",9001,4658,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3056,"Hjorsey 1955 / UTM zone 28N",9001,4658,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3057,"ISN93 / Lambert 1993",9001,4659,19989,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+3058,"Helle 1954 / Jan Mayen Grid",9001,4660,19991,9807,1,0,4531,8801,0,9110,8802,-8.3,9110,8805,1,9201,8806,50000,9001,8807,-7800000,9001,,,,,,,,,,,,,
+3059,"LKS92 / Latvia TM",9001,4661,19990,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9996,9201,8806,500000,9001,8807,-6000000,9001,,,,,,,,,,,,,
+3060,"IGN72 Grande Terre / UTM zone 58S",9001,4662,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3061,"Porto Santo 1995 / UTM zone 28N",9001,4663,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3062,"Azores Oriental 1995 / UTM zone 26N",9001,4664,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3063,"Azores Central 1995 / UTM zone 26N",9001,4665,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3064,"IGM95 / UTM zone 32N",9001,4670,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3065,"IGM95 / UTM zone 33N",9001,4670,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3066,"ED50 / Jordan TM",9001,4230,19995,9807,1,0,4400,8801,0,9102,8802,37,9102,8805,0.9998,9201,8806,500000,9001,8807,-3000000,9001,,,,,,,,,,,,,
+3067,"ETRS89 / TM35FIN(E,N)",9001,4258,16065,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3068,"DHDN / Soldner Berlin",9001,4314,19996,9806,1,0,4531,8801,52.25071338,9110,8802,13.37379332,9110,8806,40000,9001,8807,10000,9001,,,,,,,,,,,,,,,,
+3069,"NAD27 / Wisconsin Transverse Mercator",9001,4267,14811,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,500000,9001,8807,-4500000,9001,,,,,,,,,,,,,
+3070,"NAD83 / Wisconsin Transverse Mercator",9001,4269,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,,
+3071,"NAD83(HARN) / Wisconsin Transverse Mercator",9001,4152,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,,
+3072,"NAD83 / Maine CS2000 East",9001,4269,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+3073,"NAD83 / Maine CS2000 Central",9001,4269,11852,9807,1,1,4499,8801,43,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3074,"NAD83 / Maine CS2000 West",9001,4269,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3075,"NAD83(HARN) / Maine CS2000 East",9001,4152,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+3076,"NAD83(HARN) / Maine CS2000 Central",9001,4152,11852,9807,1,1,4499,8801,43,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3077,"NAD83(HARN) / Maine CS2000 West",9001,4152,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3078,"NAD83 / Michigan Oblique Mercator",9001,4269,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,,
+3079,"NAD83(HARN) / Michigan Oblique Mercator",9001,4152,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,,
+3080,"NAD27 / Shackleford",9002,4267,14252,9802,1,0,4495,8821,31.1,9110,8822,-100,9110,8823,27.25,9110,8824,34.55,9110,8826,3000000,9002,8827,3000000,9002,,,,,,,,,,
+3081,"NAD83 / Texas State Mapping System",9001,4269,14251,9802,1,0,4499,8821,31.1,9110,8822,-100,9110,8823,27.25,9110,8824,34.55,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+3082,"NAD83 / Texas Centric Lambert Conformal",9001,4269,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,,
+3083,"NAD83 / Texas Centric Albers Equal Area",9001,4269,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,,
+3084,"NAD83(HARN) / Texas Centric Lambert Conformal",9001,4152,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,,
+3085,"NAD83(HARN) / Texas Centric Albers Equal Area",9001,4152,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,,
+3086,"NAD83 / Florida GDL Albers",9001,4269,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3087,"NAD83(HARN) / Florida GDL Albers",9001,4152,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3088,"NAD83 / Kentucky Single Zone",9001,4269,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+3089,"NAD83 / Kentucky Single Zone (ftUS)",9003,4269,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,,
+3090,"NAD83(HARN) / Kentucky Single Zone",9001,4152,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+3091,"NAD83(HARN) / Kentucky Single Zone (ftUS)",9003,4152,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,,
+3092,"Tokyo / UTM zone 51N",9001,4301,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3093,"Tokyo / UTM zone 52N",9001,4301,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3094,"Tokyo / UTM zone 53N",9001,4301,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3095,"Tokyo / UTM zone 54N",9001,4301,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3096,"Tokyo / UTM zone 55N",9001,4301,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3097,"JGD2000 / UTM zone 51N",9001,4612,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3098,"JGD2000 / UTM zone 52N",9001,4612,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3099,"JGD2000 / UTM zone 53N",9001,4612,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3100,"JGD2000 / UTM zone 54N",9001,4612,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3101,"JGD2000 / UTM zone 55N",9001,4612,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3102,"American Samoa 1962 / American Samoa Lambert",9003,4169,15376,9801,1,0,4497,8801,-14.16,9110,8802,-170,9110,8805,1,9201,8806,500000,9003,8807,312234.65,9003,,,,,,,,,,,,,
+3103,"Mauritania 1999 / UTM zone 28N",9001,4681,16028,9807,1,1,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3104,"Mauritania 1999 / UTM zone 29N",9001,4681,16029,9807,1,1,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3105,"Mauritania 1999 / UTM zone 30N",9001,4681,16030,9807,1,1,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3106,"Gulshan 303 / Bangladesh Transverse Mercator",9001,4682,16490,9807,1,0,4400,8801,0,9102,8802,90,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3107,"GDA94 / SA Lambert",9001,4283,17359,9802,1,0,4400,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,,,,,,,,,
+3108,"ETRS89 / Guernsey Grid",9001,4258,19998,9807,1,0,4400,8801,49.3,9110,8802,-2.25,9110,8805,0.999997,9201,8806,47000,9001,8807,50000,9001,,,,,,,,,,,,,
+3109,"ETRS89 / Jersey Transverse Mercator",9001,4258,19999,9807,1,0,4400,8801,49.225,9102,8802,-2.135,9102,8805,0.9999999,9201,8806,40000,9001,8807,70000,9001,,,,,,,,,,,,,
+3110,"AGD66 / Vicgrid66",9001,4202,17360,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,4500000,9001,,,,,,,,,,
+3111,"GDA94 / Vicgrid",9001,4283,17361,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,2500000,9001,,,,,,,,,,
+3112,"GDA94 / Geoscience Australia Lambert",9001,4283,17362,9802,1,0,4400,8821,0,9102,8822,134,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3113,"GDA94 / BCSG02",9001,4283,17363,9807,1,0,4400,8801,-28,9102,8802,153,9102,8805,0.99999,9201,8806,50000,9001,8807,100000,9001,,,,,,,,,,,,,
+3114,"MAGNA-SIRGAS / Colombia Far West zone",9001,4686,18055,9807,1,0,4500,8801,4.35463215,9110,8802,-80.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3115,"MAGNA-SIRGAS / Colombia West zone",9001,4686,18056,9807,1,0,4500,8801,4.35463215,9110,8802,-77.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3116,"MAGNA-SIRGAS / Colombia Bogota zone",9001,4686,18057,9807,1,0,4500,8801,4.35463215,9110,8802,-74.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3117,"MAGNA-SIRGAS / Colombia East Central zone",9001,4686,18058,9807,1,0,4500,8801,4.35463215,9110,8802,-71.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3118,"MAGNA-SIRGAS / Colombia East zone",9001,4686,18059,9807,1,0,4500,8801,4.35463215,9110,8802,-68.04390285,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3119,"Douala 1948 / AEF west",9001,4192,18415,9807,1,0,4400,8801,0,9110,8802,10.3,9110,8805,0.999,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3120,"Pulkovo 1942(58) / Poland zone I",9001,4179,18280,9809,1,0,4530,8801,50.373,9110,8802,21.05,9110,8805,0.9998,9201,8806,4637000,9001,8807,5467000,9001,,,,,,,,,,,,,
+3121,"PRS92 / Philippines zone 1",9001,4683,18171,9807,1,0,4499,8801,0,9102,8802,117,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3122,"PRS92 / Philippines zone 2",9001,4683,18172,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3123,"PRS92 / Philippines zone 3",9001,4683,18173,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3124,"PRS92 / Philippines zone 4",9001,4683,18174,9807,1,0,4499,8801,0,9102,8802,123,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3125,"PRS92 / Philippines zone 5",9001,4683,18175,9807,1,0,4499,8801,0,9102,8802,125,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3126,"ETRS89 / ETRS-GK19FIN",9001,4258,18183,9807,1,0,4500,8801,0,9102,8802,19,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3127,"ETRS89 / ETRS-GK20FIN",9001,4258,18184,9807,1,0,4500,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3128,"ETRS89 / ETRS-GK21FIN",9001,4258,18185,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3129,"ETRS89 / ETRS-GK22FIN",9001,4258,18186,9807,1,0,4500,8801,0,9102,8802,22,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3130,"ETRS89 / ETRS-GK23FIN",9001,4258,18187,9807,1,0,4500,8801,0,9102,8802,23,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3131,"ETRS89 / ETRS-GK24FIN",9001,4258,18188,9807,1,0,4500,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3132,"ETRS89 / ETRS-GK25FIN",9001,4258,18189,9807,1,0,4500,8801,0,9102,8802,25,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3133,"ETRS89 / ETRS-GK26FIN",9001,4258,18190,9807,1,0,4500,8801,0,9102,8802,26,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3134,"ETRS89 / ETRS-GK27FIN",9001,4258,18195,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3135,"ETRS89 / ETRS-GK28FIN",9001,4258,18196,9807,1,0,4500,8801,0,9102,8802,28,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3136,"ETRS89 / ETRS-GK29FIN",9001,4258,18197,9807,1,0,4500,8801,0,9102,8802,29,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3137,"ETRS89 / ETRS-GK30FIN",9001,4258,18198,9807,1,0,4500,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3138,"ETRS89 / ETRS-GK31FIN",9001,4258,18199,9807,1,0,4500,8801,0,9102,8802,31,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3139,"Vanua Levu 1915 / Vanua Levu Grid",9098,4748,19878,9833,1,0,4533,8801,-16.15,9110,8802,179.2,9110,8806,1251331.8,9098,8807,1662888.5,9098,,,,,,,,,,,,,,,,
+3140,"Viti Levu 1912 / Viti Levu Grid",9098,4752,19879,9806,1,0,4533,8801,-18,9102,8802,178,9102,8806,544000,9098,8807,704000,9098,,,,,,,,,,,,,,,,
+3141,"Fiji 1956 / UTM zone 60S",9001,4721,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3142,"Fiji 1956 / UTM zone 1S",9001,4721,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3143,"Fiji 1986 / Fiji Map Grid",9001,4720,19880,9807,1,1,4400,8801,-17,9110,8802,178.45,9110,8805,0.99985,9001,8806,2000000,9001,8807,4000000,9001,,,,,,,,,,,,,
+3144,"FD54 / Faroe Lambert",9001,4741,19870,9826,1,0,1031,8801,62,9102,8802,-9,9102,8805,1,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+3145,"ETRS89 / Faroe Lambert",9001,4258,19870,9826,1,0,1031,8801,62,9102,8802,-9,9102,8805,1,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+3146,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 6",9001,4284,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3147,"Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E",9001,4284,16366,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3148,"Indian 1960 / UTM zone 48N",9001,4131,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3149,"Indian 1960 / UTM zone 49N",9001,4131,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3150,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 6",9001,4200,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3151,"Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E",9001,4200,16366,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3152,ST74,9001,4619,19876,9807,1,0,4531,8801,0,9110,8802,18.0328044,9110,8805,0.99999425,9201,8806,100178.1808,9001,8807,-6500614.7836,9001,,,,,,,,,,,,,
+3153,"NAD83(CSRS) / BC Albers",9001,4617,19984,9822,1,0,4400,8821,45,9102,8822,-126,9102,8823,50,9110,8824,58.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+3154,"NAD83(CSRS) / UTM zone 7N",9001,4617,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3155,"NAD83(CSRS) / UTM zone 8N",9001,4617,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3156,"NAD83(CSRS) / UTM zone 9N",9001,4617,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3157,"NAD83(CSRS) / UTM zone 10N",9001,4617,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3158,"NAD83(CSRS) / UTM zone 14N",9001,4617,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3159,"NAD83(CSRS) / UTM zone 15N",9001,4617,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3160,"NAD83(CSRS) / UTM zone 16N",9001,4617,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3161,"NAD83 / Ontario MNR Lambert",9001,4269,19875,9802,1,0,4400,8821,0,9102,8822,-85,9102,8823,44.5,9102,8824,53.5,9102,8826,930000,9001,8827,6430000,9001,,,,,,,,,,
+3162,"NAD83(CSRS) / Ontario MNR Lambert",9001,4617,19875,9802,1,0,4400,8821,0,9102,8822,-85,9102,8823,44.5,9102,8824,53.5,9102,8826,930000,9001,8827,6430000,9001,,,,,,,,,,
+3163,"RGNC91-93 / Lambert New Caledonia",9001,4749,19981,9802,1,0,4499,8821,-21.3,9110,8822,166,9110,8823,-20.4,9110,8824,-22.2,9110,8826,400000,9001,8827,300000,9001,,,,,,,,,,
+3164,"ST87 Ouvea / UTM zone 58S",9001,4750,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3165,"NEA74 Noumea / Noumea Lambert",9001,4644,19873,9802,1,0,4499,8821,-22.16108903,9110,8822,166.26327327,9110,8823,-22.14408903,9110,8824,-22.17408903,9110,8826,0.66,9001,8827,1.02,9001,,,,,,,,,,
+3166,"NEA74 Noumea / Noumea Lambert 2",9001,4644,19874,9802,1,0,4499,8821,-22.1611,9110,8822,166.2633,9110,8823,-22.1441,9110,8824,-22.1741,9110,8826,8.313,9001,8827,-2.354,9001,,,,,,,,,,
+3167,"Kertau (RSO) / RSO Malaya (ch)",9301,4751,19871,9812,1,0,4410,8806,40000,9301,8807,0,9301,8811,4,9110,8812,102.15,9110,8813,323.01328458,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,,
+3168,"Kertau (RSO) / RSO Malaya (m)",9001,4751,19872,9812,1,0,4400,8806,804670.24,9001,8807,0,9001,8811,4,9110,8812,102.15,9110,8813,323.01328458,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,,
+3169,"RGNC91-93 / UTM zone 57S",9001,4749,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3170,"RGNC91-93 / UTM zone 58S",9001,4749,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3171,"RGNC91-93 / UTM zone 59S",9001,4749,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3172,"IGN53 Mare / UTM zone 59S",9001,4641,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3173,"fk89 / Faroe Lambert FK89",9001,4753,19877,9826,1,0,1031,8801,62,9102,8802,-9,9102,8805,1,9201,8806,700000,9001,8807,700000,9001,,,,,,,,,,,,,
+3174,"NAD83 / Great Lakes Albers",9001,4269,15397,9822,1,0,4499,8821,45.568977,9102,8822,-84.455955,9102,8823,42.122774,9102,8824,49.01518,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+3175,"NAD83 / Great Lakes and St Lawrence Albers",9001,4269,15398,9822,1,0,4499,8821,45.568977,9102,8822,-83.248627,9102,8823,42.122774,9102,8824,49.01518,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+3176,"Indian 1960 / TM 106 NE",9001,4131,16506,9807,1,0,4400,8801,0,9102,8802,106,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3177,"LGD2006 / Libya TM",9001,4754,18319,9807,1,0,4499,8801,0,9102,8802,17,9102,8805,0.9965,9201,8806,1000000,9001,8807,0,9001,,,,,,,,,,,,,
+3178,"GR96 / UTM zone 18N",9001,4747,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3179,"GR96 / UTM zone 19N",9001,4747,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3180,"GR96 / UTM zone 20N",9001,4747,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3181,"GR96 / UTM zone 21N",9001,4747,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3182,"GR96 / UTM zone 22N",9001,4747,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3183,"GR96 / UTM zone 23N",9001,4747,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3184,"GR96 / UTM zone 24N",9001,4747,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3185,"GR96 / UTM zone 25N",9001,4747,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3186,"GR96 / UTM zone 26N",9001,4747,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3187,"GR96 / UTM zone 27N",9001,4747,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3188,"GR96 / UTM zone 28N",9001,4747,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3189,"GR96 / UTM zone 29N",9001,4747,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3190,"LGD2006 / Libya TM zone 5",9001,4754,18310,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3191,"LGD2006 / Libya TM zone 6",9001,4754,18311,9807,1,0,4499,8801,0,9102,8802,11,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3192,"LGD2006 / Libya TM zone 7",9001,4754,18312,9807,1,0,4499,8801,0,9102,8802,13,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3193,"LGD2006 / Libya TM zone 8",9001,4754,18313,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3194,"LGD2006 / Libya TM zone 9",9001,4754,18314,9807,1,0,4499,8801,0,9102,8802,17,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3195,"LGD2006 / Libya TM zone 10",9001,4754,18315,9807,1,0,4499,8801,0,9102,8802,19,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3196,"LGD2006 / Libya TM zone 11",9001,4754,18316,9807,1,0,4499,8801,0,9102,8802,21,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3197,"LGD2006 / Libya TM zone 12",9001,4754,18317,9807,1,0,4499,8801,0,9102,8802,23,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3198,"LGD2006 / Libya TM zone 13",9001,4754,18318,9807,1,0,4499,8801,0,9102,8802,25,9102,8805,0.99995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3199,"LGD2006 / UTM zone 32N",9001,4754,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3200,"FD58 / Iraq zone",9001,4132,19906,9801,1,0,4400,8801,32.3,9110,8802,45,9110,8805,0.9987864078,9201,8806,1500000,9001,8807,1166200,9001,,,,,,,,,,,,,
+3201,"LGD2006 / UTM zone 33N",9001,4754,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3202,"LGD2006 / UTM zone 34N",9001,4754,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3203,"LGD2006 / UTM zone 35N",9001,4754,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3204,"WGS 84 / SCAR IMW SP19-20",9001,4326,17204,9802,1,0,4400,8821,-90,9102,8822,-66,9102,8823,-60.4,9110,8824,-63.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3205,"WGS 84 / SCAR IMW SP21-22",9001,4326,17205,9802,1,0,4400,8821,-90,9102,8822,-54,9102,8823,-60.4,9110,8824,-63.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3206,"WGS 84 / SCAR IMW SP23-24",9001,4326,17206,9802,1,0,4400,8821,-90,9102,8822,-42,9102,8823,-60.4,9110,8824,-63.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3207,"WGS 84 / SCAR IMW SQ01-02",9001,4326,17207,9802,1,0,4400,8821,-90,9102,8822,-174,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3208,"WGS 84 / SCAR IMW SQ19-20",9001,4326,17208,9802,1,0,4400,8821,-90,9102,8822,-66,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3209,"WGS 84 / SCAR IMW SQ21-22",9001,4326,17209,9802,1,0,4400,8821,-90,9102,8822,-54,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3210,"WGS 84 / SCAR IMW SQ37-38",9001,4326,17210,9802,1,0,4400,8821,-90,9102,8822,42,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3211,"WGS 84 / SCAR IMW SQ39-40",9001,4326,17211,9802,1,0,4400,8821,-90,9102,8822,54,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3212,"WGS 84 / SCAR IMW SQ41-42",9001,4326,17212,9802,1,0,4400,8821,-90,9102,8822,66,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3213,"WGS 84 / SCAR IMW SQ43-44",9001,4326,17213,9802,1,0,4400,8821,-90,9102,8822,78,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3214,"WGS 84 / SCAR IMW SQ45-46",9001,4326,17214,9802,1,0,4400,8821,-90,9102,8822,90,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3215,"WGS 84 / SCAR IMW SQ47-48",9001,4326,17215,9802,1,0,4400,8821,-90,9102,8822,102,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3216,"WGS 84 / SCAR IMW SQ49-50",9001,4326,17216,9802,1,0,4400,8821,-90,9102,8822,114,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3217,"WGS 84 / SCAR IMW SQ51-52",9001,4326,17217,9802,1,0,4400,8821,-90,9102,8822,126,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3218,"WGS 84 / SCAR IMW SQ53-54",9001,4326,17218,9802,1,0,4400,8821,-90,9102,8822,138,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3219,"WGS 84 / SCAR IMW SQ55-56",9001,4326,17219,9802,1,0,4400,8821,-90,9102,8822,150,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3220,"WGS 84 / SCAR IMW SQ57-58",9001,4326,17220,9802,1,0,4400,8821,-90,9102,8822,162,9102,8823,-64.4,9110,8824,-67.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3221,"WGS 84 / SCAR IMW SR13-14",9001,4326,17221,9802,1,0,4400,8821,-90,9102,8822,-102,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3222,"WGS 84 / SCAR IMW SR15-16",9001,4326,17222,9802,1,0,4400,8821,-90,9102,8822,-90,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3223,"WGS 84 / SCAR IMW SR17-18",9001,4326,17223,9802,1,0,4400,8821,-90,9102,8822,-78,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3224,"WGS 84 / SCAR IMW SR19-20",9001,4326,17224,9802,1,0,4400,8821,-90,9102,8822,-66,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3225,"WGS 84 / SCAR IMW SR27-28",9001,4326,17225,9802,1,0,4400,8821,-90,9102,8822,-18,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3226,"WGS 84 / SCAR IMW SR29-30",9001,4326,17226,9802,1,0,4400,8821,-90,9102,8822,-6,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3227,"WGS 84 / SCAR IMW SR31-32",9001,4326,17227,9802,1,0,4400,8821,-90,9102,8822,6,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3228,"WGS 84 / SCAR IMW SR33-34",9001,4326,17228,9802,1,0,4400,8821,-90,9102,8822,18,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3229,"WGS 84 / SCAR IMW SR35-36",9001,4326,17229,9802,1,0,4400,8821,-90,9102,8822,30,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3230,"WGS 84 / SCAR IMW SR37-38",9001,4326,17230,9802,1,0,4400,8821,-90,9102,8822,42,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3231,"WGS 84 / SCAR IMW SR39-40",9001,4326,17231,9802,1,0,4400,8821,-90,9102,8822,54,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3232,"WGS 84 / SCAR IMW SR41-42",9001,4326,17232,9802,1,0,4400,8821,-90,9102,8822,66,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3233,"WGS 84 / SCAR IMW SR43-44",9001,4326,17233,9802,1,0,4400,8821,-90,9102,8822,78,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3234,"WGS 84 / SCAR IMW SR45-46",9001,4326,17234,9802,1,0,4400,8821,-90,9102,8822,90,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3235,"WGS 84 / SCAR IMW SR47-48",9001,4326,17235,9802,1,0,4400,8821,-90,9102,8822,102,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3236,"WGS 84 / SCAR IMW SR49-50",9001,4326,17236,9802,1,0,4400,8821,-90,9102,8822,114,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3237,"WGS 84 / SCAR IMW SR51-52",9001,4326,17237,9802,1,0,4400,8821,-90,9102,8822,126,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3238,"WGS 84 / SCAR IMW SR53-54",9001,4326,17238,9802,1,0,4400,8821,-90,9102,8822,138,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3239,"WGS 84 / SCAR IMW SR55-56",9001,4326,17239,9802,1,0,4400,8821,-90,9102,8822,150,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3240,"WGS 84 / SCAR IMW SR57-58",9001,4326,17240,9802,1,0,4400,8821,-90,9102,8822,162,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3241,"WGS 84 / SCAR IMW SR59-60",9001,4326,17241,9802,1,0,4400,8821,-90,9102,8822,174,9102,8823,-68.4,9110,8824,-71.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3242,"WGS 84 / SCAR IMW SS04-06",9001,4326,17242,9802,1,0,4400,8821,-90,9102,8822,-153,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3243,"WGS 84 / SCAR IMW SS07-09",9001,4326,17243,9802,1,0,4400,8821,-90,9102,8822,-135,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3244,"WGS 84 / SCAR IMW SS10-12",9001,4326,17244,9802,1,0,4400,8821,-90,9102,8822,-117,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3245,"WGS 84 / SCAR IMW SS13-15",9001,4326,17245,9802,1,0,4400,8821,-90,9102,8822,-99,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3246,"WGS 84 / SCAR IMW SS16-18",9001,4326,17246,9802,1,0,4400,8821,-90,9102,8822,-81,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3247,"WGS 84 / SCAR IMW SS19-21",9001,4326,17247,9802,1,0,4400,8821,-90,9102,8822,-63,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3248,"WGS 84 / SCAR IMW SS25-27",9001,4326,17248,9802,1,0,4400,8821,-90,9102,8822,-27,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3249,"WGS 84 / SCAR IMW SS28-30",9001,4326,17249,9802,1,0,4400,8821,-90,9102,8822,-9,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3250,"WGS 84 / SCAR IMW SS31-33",9001,4326,17250,9802,1,0,4400,8821,-90,9102,8822,9,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3251,"WGS 84 / SCAR IMW SS34-36",9001,4326,17251,9802,1,0,4400,8821,-90,9102,8822,27,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3252,"WGS 84 / SCAR IMW SS37-39",9001,4326,17252,9802,1,0,4400,8821,-90,9102,8822,45,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3253,"WGS 84 / SCAR IMW SS40-42",9001,4326,17253,9802,1,0,4400,8821,-90,9102,8822,63,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3254,"WGS 84 / SCAR IMW SS43-45",9001,4326,17254,9802,1,0,4400,8821,-90,9102,8822,81,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3255,"WGS 84 / SCAR IMW SS46-48",9001,4326,17255,9802,1,0,4400,8821,-90,9102,8822,99,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3256,"WGS 84 / SCAR IMW SS49-51",9001,4326,17256,9802,1,0,4400,8821,-90,9102,8822,117,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3257,"WGS 84 / SCAR IMW SS52-54",9001,4326,17257,9802,1,0,4400,8821,-90,9102,8822,135,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3258,"WGS 84 / SCAR IMW SS55-57",9001,4326,17258,9802,1,0,4400,8821,-90,9102,8822,153,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3259,"WGS 84 / SCAR IMW SS58-60",9001,4326,17259,9802,1,0,4400,8821,-90,9102,8822,171,9102,8823,-72.4,9110,8824,-75.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3260,"WGS 84 / SCAR IMW ST01-04",9001,4326,17260,9802,1,0,4400,8821,-90,9102,8822,-168,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3261,"WGS 84 / SCAR IMW ST05-08",9001,4326,17261,9802,1,0,4400,8821,-90,9102,8822,-144,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3262,"WGS 84 / SCAR IMW ST09-12",9001,4326,17262,9802,1,0,4400,8821,-90,9102,8822,-120,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3263,"WGS 84 / SCAR IMW ST13-16",9001,4326,17263,9802,1,0,4400,8821,-90,9102,8822,-96,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3264,"WGS 84 / SCAR IMW ST17-20",9001,4326,17264,9802,1,0,4400,8821,-90,9102,8822,-72,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3265,"WGS 84 / SCAR IMW ST21-24",9001,4326,17265,9802,1,0,4400,8821,-90,9102,8822,-48,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3266,"WGS 84 / SCAR IMW ST25-28",9001,4326,17266,9802,1,0,4400,8821,-90,9102,8822,-24,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3267,"WGS 84 / SCAR IMW ST29-32",9001,4326,17267,9802,1,0,4400,8821,-90,9102,8822,0,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3268,"WGS 84 / SCAR IMW ST33-36",9001,4326,17268,9802,1,0,4400,8821,-90,9102,8822,24,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3269,"WGS 84 / SCAR IMW ST37-40",9001,4326,17269,9802,1,0,4400,8821,-90,9102,8822,48,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3270,"WGS 84 / SCAR IMW ST41-44",9001,4326,17270,9802,1,0,4400,8821,-90,9102,8822,72,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3271,"WGS 84 / SCAR IMW ST45-48",9001,4326,17271,9802,1,0,4400,8821,-90,9102,8822,96,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3272,"WGS 84 / SCAR IMW ST49-52",9001,4326,17272,9802,1,0,4400,8821,-90,9102,8822,120,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3273,"WGS 84 / SCAR IMW ST53-56",9001,4326,17273,9802,1,0,4400,8821,-90,9102,8822,144,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3274,"WGS 84 / SCAR IMW ST57-60",9001,4326,17274,9802,1,0,4400,8821,-90,9102,8822,168,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3275,"WGS 84 / SCAR IMW SU01-05",9001,4326,17275,9829,1,0,4471,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-165,9102,,,,,,,,,,,,,,,,
+3276,"WGS 84 / SCAR IMW SU06-10",9001,4326,17276,9829,1,0,4473,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-135,9102,,,,,,,,,,,,,,,,
+3277,"WGS 84 / SCAR IMW SU11-15",9001,4326,17277,9829,1,0,4474,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-105,9102,,,,,,,,,,,,,,,,
+3278,"WGS 84 / SCAR IMW SU16-20",9001,4326,17278,9829,1,0,4476,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-75,9102,,,,,,,,,,,,,,,,
+3279,"WGS 84 / SCAR IMW SU21-25",9001,4326,17279,9829,1,0,4477,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-45,9102,,,,,,,,,,,,,,,,
+3280,"WGS 84 / SCAR IMW SU26-30",9001,4326,17280,9829,1,0,4479,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-15,9102,,,,,,,,,,,,,,,,
+3281,"WGS 84 / SCAR IMW SU31-35",9001,4326,17281,9829,1,0,4480,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,15,9102,,,,,,,,,,,,,,,,
+3282,"WGS 84 / SCAR IMW SU36-40",9001,4326,17282,9829,1,0,4482,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,45,9102,,,,,,,,,,,,,,,,
+3283,"WGS 84 / SCAR IMW SU41-45",9001,4326,17283,9829,1,0,4483,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,75,9102,,,,,,,,,,,,,,,,
+3284,"WGS 84 / SCAR IMW SU46-50",9001,4326,17284,9829,1,0,4485,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,105,9102,,,,,,,,,,,,,,,,
+3285,"WGS 84 / SCAR IMW SU51-55",9001,4326,17285,9829,1,0,4486,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,135,9102,,,,,,,,,,,,,,,,
+3286,"WGS 84 / SCAR IMW SU56-60",9001,4326,17286,9829,1,0,4488,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,165,9102,,,,,,,,,,,,,,,,
+3287,"WGS 84 / SCAR IMW SV01-10",9001,4326,17287,9829,1,0,4472,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-150,9102,,,,,,,,,,,,,,,,
+3288,"WGS 84 / SCAR IMW SV11-20",9001,4326,17288,9829,1,0,4475,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-90,9102,,,,,,,,,,,,,,,,
+3289,"WGS 84 / SCAR IMW SV21-30",9001,4326,17289,9829,1,0,4478,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,-30,9102,,,,,,,,,,,,,,,,
+3290,"WGS 84 / SCAR IMW SV31-40",9001,4326,17290,9829,1,0,4481,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,30,9102,,,,,,,,,,,,,,,,
+3291,"WGS 84 / SCAR IMW SV41-50",9001,4326,17291,9829,1,0,4484,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,90,9102,,,,,,,,,,,,,,,,
+3292,"WGS 84 / SCAR IMW SV51-60",9001,4326,17292,9829,1,0,4487,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,150,9102,,,,,,,,,,,,,,,,
+3293,"WGS 84 / SCAR IMW SW01-60",9001,4326,17293,9829,1,0,4490,8806,0,9001,8807,0,9001,8832,-80.1419,9110,8833,0,9102,,,,,,,,,,,,,,,,
+3294,"WGS 84 / USGS Transantarctic Mountains",9001,4326,17294,9802,1,0,4400,8821,-78,9102,8822,162,9102,8823,-76.4,9110,8824,-79.2,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3295,"Guam 1963 / Yap Islands",9001,4675,15399,9832,1,0,4499,8801,9.324815,9110,8802,138.100748,9110,8806,40000,9001,8807,60000,9001,,,,,,,,,,,,,,,,
+3296,"RGPF / UTM zone 5S",9001,4687,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3297,"RGPF / UTM zone 6S",9001,4687,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3298,"RGPF / UTM zone 7S",9001,4687,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3299,"RGPF / UTM zone 8S",9001,4687,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3300,Estonian Coordinate System of 1992,9001,4133,19938,9802,1,0,4530,8821,57.310319415,9110,8822,24,9110,8823,59.2,9110,8824,58,9110,8826,500000,9001,8827,6375000,9001,,,,,,,,,,
+3301,Estonian Coordinate System of 1997,9001,4180,19938,9802,1,0,4530,8821,57.310319415,9110,8822,24,9110,8823,59.2,9110,8824,58,9110,8826,500000,9001,8827,6375000,9001,,,,,,,,,,
+3302,"IGN63 Hiva Oa / UTM zone 7S",9001,4689,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3303,"Fatu Iva 72 / UTM zone 7S",9001,4688,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3304,"Tahiti 79 / UTM zone 6S",9001,4690,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3305,"Moorea 87 / UTM zone 6S",9001,4691,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3306,"Maupiti 83 / UTM zone 5S",9001,4692,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3307,"Nakhl-e Ghanem / UTM zone 39N",9001,4693,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3308,"GDA94 / NSW Lambert",9001,4283,17364,9802,1,0,4400,8821,-33.25,9102,8822,147,9102,8823,-30.75,9102,8824,-35.75,9102,8826,9300000,9001,8827,4500000,9001,,,,,,,,,,
+3309,"NAD27 / California Albers",9001,4267,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,,
+3310,"NAD83 / California Albers",9001,4269,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,,
+3311,"NAD83(HARN) / California Albers",9001,4152,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,,
+3312,"CSG67 / UTM zone 21N",9001,4623,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3313,"RGFG95 / UTM zone 21N",9001,4624,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3314,"Katanga 1955 / Katanga Lambert",9001,4695,17401,9802,1,1,4400,8821,0,9102,8822,26,9102,8823,-6.5,9102,8824,-11.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3315,"Katanga 1955 / Katanga TM",9001,4695,17402,9807,1,1,4400,8801,-9,9102,8802,26,9102,8805,0.9998,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3316,"Kasai 1953 / Congo TM zone 22",9001,4696,17422,9807,1,0,4400,8801,0,9102,8802,22,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3317,"Kasai 1953 / Congo TM zone 24",9001,4696,17424,9807,1,0,4400,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3318,"IGC 1962 / Congo TM zone 12",9001,4697,17412,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3319,"IGC 1962 / Congo TM zone 14",9001,4697,17414,9807,1,0,4400,8801,0,9102,8802,14,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3320,"IGC 1962 / Congo TM zone 16",9001,4697,17416,9807,1,0,4400,8801,0,9102,8802,16,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3321,"IGC 1962 / Congo TM zone 18",9001,4697,17418,9807,1,0,4400,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3322,"IGC 1962 / Congo TM zone 20",9001,4697,17420,9807,1,0,4400,8801,0,9102,8802,20,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3323,"IGC 1962 / Congo TM zone 22",9001,4697,17422,9807,1,0,4400,8801,0,9102,8802,22,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3324,"IGC 1962 / Congo TM zone 24",9001,4697,17424,9807,1,0,4400,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3325,"IGC 1962 / Congo TM zone 26",9001,4697,17426,9807,1,0,4400,8801,0,9102,8802,26,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3326,"IGC 1962 / Congo TM zone 28",9001,4697,17428,9807,1,0,4400,8801,0,9102,8802,28,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3327,"IGC 1962 / Congo TM zone 30",9001,4697,17430,9807,1,0,4400,8801,0,9102,8802,30,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3328,"Pulkovo 1942(58) / GUGiK-80",9001,4179,18286,9809,1,0,4530,8801,52.1,9110,8802,19.1,9110,8805,0.999714,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+3329,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5",9001,4179,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+3330,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6",9001,4179,16266,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3331,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7",9001,4179,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+3332,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8",9001,4179,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+3333,"Pulkovo 1942(58) / Gauss-Kruger zone 3",9001,4179,16203,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+3334,"Pulkovo 1942(58) / Gauss-Kruger zone 4",9001,4179,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+3335,"Pulkovo 1942(58) / Gauss-Kruger zone 5",9001,4179,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+3336,"IGN 1962 Kerguelen / UTM zone 42S",9001,4698,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3337,"Le Pouce 1934 / Mauritius Grid",9001,4699,19899,9801,1,0,4400,8801,-20.114225,9110,8802,57.311858,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+3338,"NAD83 / Alaska Albers",9001,4269,15021,9822,1,0,4499,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3339,"IGCB 1955 / Congo TM zone 12",9001,4701,17412,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3340,"IGCB 1955 / Congo TM zone 14",9001,4701,17414,9807,1,0,4400,8801,0,9102,8802,14,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3341,"IGCB 1955 / Congo TM zone 16",9001,4701,17416,9807,1,0,4400,8801,0,9102,8802,16,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3342,"IGCB 1955 / UTM zone 33S",9001,4701,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3343,"Mauritania 1999 / UTM zone 28N",9001,4702,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3344,"Mauritania 1999 / UTM zone 29N",9001,4702,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3345,"Mauritania 1999 / UTM zone 30N",9001,4702,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3346,"LKS94 / Lithuania TM",9001,4669,19934,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3347,"NAD83 / Statistics Canada Lambert",9001,4269,19897,9802,1,0,4400,8821,63.390675,9102,8822,-91.52,9110,8823,49,9102,8824,77,9102,8826,6200000,9001,8827,3000000,9001,,,,,,,,,,
+3348,"NAD83(CSRS) / Statistics Canada Lambert",9001,4617,19897,9802,1,0,4400,8821,63.390675,9102,8822,-91.52,9110,8823,49,9102,8824,77,9102,8826,6200000,9001,8827,3000000,9001,,,,,,,,,,
+3349,"WGS 84 / PDC Mercator",9001,4326,19898,9804,1,1,4400,8801,0,9102,8802,-150,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3350,"Pulkovo 1942 / CS63 zone C0",9001,4284,18450,9807,1,0,4530,8801,0.06,9110,8802,21.57,9110,8805,1,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3351,"Pulkovo 1942 / CS63 zone C1",9001,4284,18451,9807,1,0,4530,8801,0.06,9110,8802,24.57,9110,8805,1,9201,8806,1250000,9001,8807,0,9001,,,,,,,,,,,,,
+3352,"Pulkovo 1942 / CS63 zone C2",9001,4284,18452,9807,1,0,4530,8801,0.06,9110,8802,27.57,9110,8805,1,9201,8806,2250000,9001,8807,0,9001,,,,,,,,,,,,,
+3353,"Mhast (onshore) / UTM zone 32S",9001,4704,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3354,"Mhast (offshore) / UTM zone 32S",9001,4705,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3355,"Egypt Gulf of Suez S-650 TL / Red Belt",9001,4706,18072,9807,1,0,4400,8801,30,9102,8802,31,9102,8805,1,9201,8806,615000,9001,8807,810000,9001,,,,,,,,,,,,,
+3356,"Grand Cayman 1959 / UTM zone 17N",9001,4723,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3357,"Little Cayman 1961 / UTM zone 17N",9001,4726,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3358,"NAD83(HARN) / North Carolina",9001,4152,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,,
+3359,"NAD83(HARN) / North Carolina (ftUS)",9002,4152,15346,9802,1,1,4495,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+3360,"NAD83(HARN) / South Carolina",9001,4152,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,,
+3361,"NAD83(HARN) / South Carolina (ft)",9002,4152,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,,
+3362,"NAD83(HARN) / Pennsylvania North",9001,4152,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3363,"NAD83(HARN) / Pennsylvania North (ftUS)",9003,4152,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3364,"NAD83(HARN) / Pennsylvania South",9001,4152,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3365,"NAD83(HARN) / Pennsylvania South (ftUS)",9003,4152,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3366,Hong Kong 1963 Grid System,9001,4738,19896,9806,1,1,4500,8801,22.184368,9110,8802,114.10428,9110,8806,132033.92,9005,8807,62565.96,9005,,,,,,,,,,,,,,,,
+3367,"IGN Astro 1960 / UTM zone 28N",9001,4700,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3368,"IGN Astro 1960 / UTM zone 29N",9001,4700,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3369,"IGN Astro 1960 / UTM zone 30N",9001,4700,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3370,"NAD27 / UTM zone 59N",9001,4267,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3371,"NAD27 / UTM zone 60N",9001,4267,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3372,"NAD83 / UTM zone 59N",9001,4269,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3373,"NAD83 / UTM zone 60N",9001,4269,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3374,"FD54 / UTM zone 29N",9001,4741,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3375,"GDM2000 / Peninsula RSO",9001,4742,19895,9812,1,0,4400,8806,804671,9001,8807,0,9001,8811,4,9110,8812,102.15,9110,8813,323.013286728,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,,
+3376,"GDM2000 / East Malaysia BRSO",9001,4742,19894,9812,1,0,4400,8806,0,9001,8807,0,9001,8811,4,9110,8812,115,9110,8813,53.185691582,9110,8814,53.07483685,9110,8815,0.99984,9201,,,,,,,
+3377,"GDM2000 / Johor Grid",9001,4742,19893,9806,1,0,4400,8801,2.071804708,9110,8802,103.254057045,9110,8806,-14810.562,9001,8807,8758.32,9001,,,,,,,,,,,,,,,,
+3378,"GDM2000 / Sembilan and Melaka Grid",9001,4742,19892,9806,1,0,4400,8801,2.405645149,9110,8802,101.582965815,9110,8806,3673.785,9001,8807,-4240.573,9001,,,,,,,,,,,,,,,,
+3379,"GDM2000 / Pahang Grid",9001,4742,19891,9806,1,0,4400,8801,3.460979712,9110,8802,102.220587634,9110,8806,-7368.228,9001,8807,6485.858,9001,,,,,,,,,,,,,,,,
+3380,"GDM2000 / Selangor Grid",9001,4742,19890,9806,1,0,4400,8801,3.410473658,9110,8802,101.232078849,9110,8806,-34836.161,9001,8807,56464.049,9001,,,,,,,,,,,,,,,,
+3381,"GDM2000 / Terengganu Grid",9001,4742,19889,9806,1,0,4400,8801,4.583462672,9110,8802,103.041299225,9110,8806,19594.245,9001,8807,3371.895,9001,,,,,,,,,,,,,,,,
+3382,"GDM2000 / Pinang Grid",9001,4742,19888,9806,1,0,4400,8801,5.251746315,9110,8802,100.203975707,9110,8806,-23.414,9001,8807,62.283,9001,,,,,,,,,,,,,,,,
+3383,"GDM2000 / Kedah and Perlis Grid",9001,4742,19887,9806,1,0,4400,8801,5.575282177,9110,8802,100.3810936,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3384,"GDM2000 / Perak Grid",9001,4742,19886,9806,1,0,4400,8801,4.513262688,9110,8802,100.485547811,9110,8806,-1.769,9001,8807,133454.779,9001,,,,,,,,,,,,,,,,
+3385,"GDM2000 / Kelantan Grid",9001,4742,19885,9806,1,0,4400,8801,5.582115717,9110,8802,102.174287001,9110,8806,13227.851,9001,8807,8739.894,9001,,,,,,,,,,,,,,,,
+3386,"KKJ / Finland zone 0",9001,4123,18180,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3387,"KKJ / Finland zone 5",9001,4123,18205,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+3388,"Pulkovo 1942 / Caspian Sea Mercator",9001,4284,19884,9805,1,0,4534,8802,51,9102,8806,0,9001,8807,0,9001,8823,42,9102,,,,,,,,,,,,,,,,
+3389,"Pulkovo 1942 / 3-degree Gauss-Kruger zone 60",9001,4284,16099,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60500000,9001,8807,0,9001,,,,,,,,,,,,,
+3390,"Pulkovo 1995 / 3-degree Gauss-Kruger zone 60",9001,4200,16099,9807,1,0,4530,8801,0,9102,8802,180,9102,8805,1,9201,8806,60500000,9001,8807,0,9001,,,,,,,,,,,,,
+3391,"Karbala 1979 / UTM zone 37N",9001,4743,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3392,"Karbala 1979 / UTM zone 38N",9001,4743,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3393,"Karbala 1979 / UTM zone 39N",9001,4743,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3394,"Nahrwan 1934 / Iraq zone",9001,4744,19906,9801,1,0,4400,8801,32.3,9110,8802,45,9110,8805,0.9987864078,9201,8806,1500000,9001,8807,1166200,9001,,,,,,,,,,,,,
+3395,"WGS 84 / World Mercator",9001,4326,19883,9804,1,0,4400,8801,0,9102,8802,0,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3396,"PD/83 / 3-degree Gauss-Kruger zone 3",9001,4746,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+3397,"PD/83 / 3-degree Gauss-Kruger zone 4",9001,4746,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+3398,"RD/83 / 3-degree Gauss-Kruger zone 4",9001,4745,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+3399,"RD/83 / 3-degree Gauss-Kruger zone 5",9001,4745,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+3400,"NAD83 / Alberta 10-TM (Forest)",9001,4269,19881,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3401,"NAD83 / Alberta 10-TM (Resource)",9001,4269,19882,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3402,"NAD83(CSRS) / Alberta 10-TM (Forest)",9001,4617,19881,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3403,"NAD83(CSRS) / Alberta 10-TM (Resource)",9001,4617,19882,9807,1,0,4400,8801,0,9102,8802,-115,9102,8805,0.9992,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3404,"NAD83(HARN) / North Carolina (ftUS)",9003,4152,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+3405,"VN-2000 / UTM zone 48N",9001,4756,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3406,"VN-2000 / UTM zone 49N",9001,4756,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3407,Hong Kong 1963 Grid System,9005,4738,19896,9806,1,0,4502,8801,22.184368,9110,8802,114.10428,9110,8806,132033.92,9005,8807,62565.96,9005,,,,,,,,,,,,,,,,
+3408,NSIDC EASE-Grid North,9001,4053,3897,1027,1,0,4469,8801,90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3409,NSIDC EASE-Grid South,9001,4053,3898,1027,1,0,4470,8801,-90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3410,NSIDC EASE-Grid Global,9001,4053,19869,9834,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,30,9102,,,,,,,,,,,,,,,,
+3411,NSIDC Sea Ice Polar Stereographic North,9001,4054,19865,9829,1,0,4468,8806,0,9001,8807,0,9001,8832,70,9102,8833,-45,9102,,,,,,,,,,,,,,,,
+3412,NSIDC Sea Ice Polar Stereographic South,9001,4054,19866,9829,1,0,4470,8806,0,9001,8807,0,9001,8832,-70,9102,8833,0,9102,,,,,,,,,,,,,,,,
+3413,"WGS 84 / NSIDC Sea Ice Polar Stereographic North",9001,4326,19865,9829,1,0,4468,8806,0,9001,8807,0,9001,8832,70,9102,8833,-45,9102,,,,,,,,,,,,,,,,
+3414,"SVY21 / Singapore TM",9001,4757,19864,9807,1,0,4500,8801,1.22,9110,8802,103.5,9110,8805,1,9201,8806,28001.642,9001,8807,38744.572,9001,,,,,,,,,,,,,
+3415,"WGS 72BE / South China Sea Lambert",9001,4324,19863,9802,1,0,4400,8821,21,9102,8822,114,9102,8823,18,9102,8824,24,9102,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+3416,"ETRS89 / Austria Lambert",9001,4258,19947,9802,1,0,4530,8821,47.3,9110,8822,13.2,9110,8823,49,9110,8824,46,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+3417,"NAD83 / Iowa North (ftUS)",9003,4269,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,,
+3418,"NAD83 / Iowa South (ftUS)",9003,4269,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+3419,"NAD83 / Kansas North (ftUS)",9003,4269,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+3420,"NAD83 / Kansas South (ftUS)",9003,4269,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+3421,"NAD83 / Nevada East (ftUS)",9003,4269,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,,
+3422,"NAD83 / Nevada Central (ftUS)",9003,4269,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,,
+3423,"NAD83 / Nevada West (ftUS)",9003,4269,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,,
+3424,"NAD83 / New Jersey (ftUS)",9003,4269,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+3425,"NAD83(HARN) / Iowa North (ftUS)",9003,4152,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,,
+3426,"NAD83(HARN) / Iowa South (ftUS)",9003,4152,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+3427,"NAD83(HARN) / Kansas North (ftUS)",9003,4152,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+3428,"NAD83(HARN) / Kansas South (ftUS)",9003,4152,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+3429,"NAD83(HARN) / Nevada East (ftUS)",9003,4152,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,,
+3430,"NAD83(HARN) / Nevada Central (ftUS)",9003,4152,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,,
+3431,"NAD83(HARN) / Nevada West (ftUS)",9003,4152,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,,
+3432,"NAD83(HARN) / New Jersey (ftUS)",9003,4152,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+3433,"NAD83 / Arkansas North (ftUS)",9003,4269,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+3434,"NAD83 / Arkansas South (ftUS)",9003,4269,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+3435,"NAD83 / Illinois East (ftUS)",9003,4269,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3436,"NAD83 / Illinois West (ftUS)",9003,4269,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,,
+3437,"NAD83 / New Hampshire (ftUS)",9003,4269,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3438,"NAD83 / Rhode Island (ftUS)",9003,4269,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,,
+3439,"PSD93 / UTM zone 39N",9001,4134,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3440,"PSD93 / UTM zone 40N",9001,4134,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3441,"NAD83(HARN) / Arkansas North (ftUS)",9003,4152,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+3442,"NAD83(HARN) / Arkansas South (ftUS)",9003,4152,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+3443,"NAD83(HARN) / Illinois East (ftUS)",9003,4152,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3444,"NAD83(HARN) / Illinois West (ftUS)",9003,4152,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,,
+3445,"NAD83(HARN) / New Hampshire (ftUS)",9003,4152,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3446,"NAD83(HARN) / Rhode Island (ftUS)",9003,4152,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,,
+3447,"ETRS89 / Belgian Lambert 2005",9001,4258,19862,9802,1,0,4499,8821,50.4752134,9110,8822,4.2133177,9110,8823,49.5,9110,8824,51.1,9110,8826,150328,9001,8827,166262,9001,,,,,,,,,,
+3448,"JAD2001 / Jamaica Metric Grid",9001,4758,19860,9801,1,0,4400,8801,18,9102,8802,-77,9102,8805,1,9201,8806,750000,9001,8807,650000,9001,,,,,,,,,,,,,
+3449,"JAD2001 / UTM zone 17N",9001,4758,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3450,"JAD2001 / UTM zone 18N",9001,4758,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3451,"NAD83 / Louisiana North (ftUS)",9003,4269,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3452,"NAD83 / Louisiana South (ftUS)",9003,4269,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3453,"NAD83 / Louisiana Offshore (ftUS)",9003,4269,15393,9802,1,0,4497,8821,25.3,9110,8822,-91.2,9110,8823,27.5,9110,8824,26.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3454,"NAD83 / South Dakota North (ftUS)",9003,4269,15395,9802,1,1,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3455,"NAD83 / South Dakota South (ftUS)",9003,4269,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3456,"NAD83(HARN) / Louisiana North (ftUS)",9003,4152,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3457,"NAD83(HARN) / Louisiana South (ftUS)",9003,4152,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3458,"NAD83(HARN) / South Dakota North (ftUS)",9003,4152,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3459,"NAD83(HARN) / South Dakota South (ftUS)",9003,4152,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3460,"Fiji 1986 / Fiji Map Grid",9001,4720,19859,9807,1,0,4400,8801,-17,9110,8802,178.45,9110,8805,0.99985,9201,8806,2000000,9001,8807,4000000,9001,,,,,,,,,,,,,
+3461,"Dabola 1981 / UTM zone 28N",9001,4155,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3462,"Dabola 1981 / UTM zone 29N",9001,4155,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3463,"NAD83 / Maine CS2000 Central",9001,4269,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3464,"NAD83(HARN) / Maine CS2000 Central",9001,4152,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3465,"NAD83(NSRS2007) / Alabama East",9001,4759,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3466,"NAD83(NSRS2007) / Alabama West",9001,4759,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+3467,"NAD83(NSRS2007) / Alaska Albers",9001,4759,15021,9822,1,0,4499,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3468,"NAD83(NSRS2007) / Alaska zone 1",9001,4759,15031,9812,1,0,4499,8806,5000000,9001,8807,-5000000,9001,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,,
+3469,"NAD83(NSRS2007) / Alaska zone 2",9001,4759,15032,9807,1,0,4499,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3470,"NAD83(NSRS2007) / Alaska zone 3",9001,4759,15033,9807,1,0,4499,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3471,"NAD83(NSRS2007) / Alaska zone 4",9001,4759,15034,9807,1,0,4499,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3472,"NAD83(NSRS2007) / Alaska zone 5",9001,4759,15035,9807,1,0,4499,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3473,"NAD83(NSRS2007) / Alaska zone 6",9001,4759,15036,9807,1,0,4499,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3474,"NAD83(NSRS2007) / Alaska zone 7",9001,4759,15037,9807,1,0,4499,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3475,"NAD83(NSRS2007) / Alaska zone 8",9001,4759,15038,9807,1,0,4499,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3476,"NAD83(NSRS2007) / Alaska zone 9",9001,4759,15039,9807,1,0,4499,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3477,"NAD83(NSRS2007) / Alaska zone 10",9001,4759,15040,9802,1,0,4499,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+3478,"NAD83(NSRS2007) / Arizona Central",9001,4759,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+3479,"NAD83(NSRS2007) / Arizona Central (ft)",9002,4759,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+3480,"NAD83(NSRS2007) / Arizona East",9001,4759,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+3481,"NAD83(NSRS2007) / Arizona East (ft)",9002,4759,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+3482,"NAD83(NSRS2007) / Arizona West",9001,4759,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+3483,"NAD83(NSRS2007) / Arizona West (ft)",9002,4759,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+3484,"NAD83(NSRS2007) / Arkansas North",9001,4759,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3485,"NAD83(NSRS2007) / Arkansas North (ftUS)",9003,4759,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+3486,"NAD83(NSRS2007) / Arkansas South",9001,4759,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+3487,"NAD83(NSRS2007) / Arkansas South (ftUS)",9003,4759,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+3488,"NAD83(NSRS2007) / California Albers",9001,4759,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,,
+3489,"NAD83(NSRS2007) / California zone 1",9001,4759,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+3490,"NAD83(NSRS2007) / California zone 1 (ftUS)",9003,4759,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3491,"NAD83(NSRS2007) / California zone 2",9001,4759,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+3492,"NAD83(NSRS2007) / California zone 2 (ftUS)",9003,4759,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3493,"NAD83(NSRS2007) / California zone 3",9001,4759,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+3494,"NAD83(NSRS2007) / California zone 3 (ftUS)",9003,4759,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3495,"NAD83(NSRS2007) / California zone 4",9001,4759,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+3496,"NAD83(NSRS2007) / California zone 4 (ftUS)",9003,4759,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3497,"NAD83(NSRS2007) / California zone 5",9001,4759,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+3498,"NAD83(NSRS2007) / California zone 5 (ftUS)",9003,4759,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3499,"NAD83(NSRS2007) / California zone 6",9001,4759,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+3500,"NAD83(NSRS2007) / California zone 6 (ftUS)",9003,4759,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3501,"NAD83(NSRS2007) / Colorado Central",9001,4759,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+3502,"NAD83(NSRS2007) / Colorado Central (ftUS)",9003,4759,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+3503,"NAD83(NSRS2007) / Colorado North",9001,4759,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+3504,"NAD83(NSRS2007) / Colorado North (ftUS)",9003,4759,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+3505,"NAD83(NSRS2007) / Colorado South",9001,4759,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+3506,"NAD83(NSRS2007) / Colorado South (ftUS)",9003,4759,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+3507,"NAD83(NSRS2007) / Connecticut",9001,4759,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,,
+3508,"NAD83(NSRS2007) / Connecticut (ftUS)",9003,4759,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,,
+3509,"NAD83(NSRS2007) / Delaware",9001,4759,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3510,"NAD83(NSRS2007) / Delaware (ftUS)",9003,4759,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+3511,"NAD83(NSRS2007) / Florida East",9001,4759,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3512,"NAD83(NSRS2007) / Florida East (ftUS)",9003,4759,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+3513,"NAD83(NSRS2007) / Florida GDL Albers",9001,4759,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3514,"NAD83(NSRS2007) / Florida North",9001,4759,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3515,"NAD83(NSRS2007) / Florida North (ftUS)",9003,4759,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3516,"NAD83(NSRS2007) / Florida West",9001,4759,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3517,"NAD83(NSRS2007) / Florida West (ftUS)",9003,4759,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+3518,"NAD83(NSRS2007) / Georgia East",9001,4759,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3519,"NAD83(NSRS2007) / Georgia East (ftUS)",9003,4759,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+3520,"NAD83(NSRS2007) / Georgia West",9001,4759,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+3521,"NAD83(NSRS2007) / Georgia West (ftUS)",9003,4759,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+3522,"NAD83(NSRS2007) / Idaho Central",9001,4759,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3523,"NAD83(NSRS2007) / Idaho Central (ftUS)",9003,4759,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+3524,"NAD83(NSRS2007) / Idaho East",9001,4759,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3525,"NAD83(NSRS2007) / Idaho East (ftUS)",9003,4759,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+3526,"NAD83(NSRS2007) / Idaho West",9001,4759,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,,
+3527,"NAD83(NSRS2007) / Idaho West (ftUS)",9003,4759,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,,
+3528,"NAD83(NSRS2007) / Illinois East",9001,4759,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3529,"NAD83(NSRS2007) / Illinois East (ftUS)",9003,4759,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3530,"NAD83(NSRS2007) / Illinois West",9001,4759,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+3531,"NAD83(NSRS2007) / Illinois West (ftUS)",9003,4759,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,,
+3532,"NAD83(NSRS2007) / Indiana East",9001,4759,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,,
+3533,"NAD83(NSRS2007) / Indiana East (ftUS)",9003,4759,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,,
+3534,"NAD83(NSRS2007) / Indiana West",9001,4759,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,,
+3535,"NAD83(NSRS2007) / Indiana West (ftUS)",9003,4759,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,,
+3536,"NAD83(NSRS2007) / Iowa North",9001,4759,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+3537,"NAD83(NSRS2007) / Iowa North (ftUS)",9003,4759,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,,
+3538,"NAD83(NSRS2007) / Iowa South",9001,4759,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3539,"NAD83(NSRS2007) / Iowa South (ftUS)",9003,4759,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+3540,"NAD83(NSRS2007) / Kansas North",9001,4759,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3541,"NAD83(NSRS2007) / Kansas North (ftUS)",9003,4759,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+3542,"NAD83(NSRS2007) / Kansas South",9001,4759,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+3543,"NAD83(NSRS2007) / Kansas South (ftUS)",9003,4759,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+3544,"NAD83(NSRS2007) / Kentucky North",9001,4759,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3545,"NAD83(NSRS2007) / Kentucky North (ftUS)",9003,4759,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+3546,"NAD83(NSRS2007) / Kentucky Single Zone",9001,4759,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+3547,"NAD83(NSRS2007) / Kentucky Single Zone (ftUS)",9003,4759,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,,
+3548,"NAD83(NSRS2007) / Kentucky South",9001,4759,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+3549,"NAD83(NSRS2007) / Kentucky South (ftUS)",9003,4759,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,,
+3550,"NAD83(NSRS2007) / Louisiana North",9001,4759,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+3551,"NAD83(NSRS2007) / Louisiana North (ftUS)",9003,4759,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3552,"NAD83(NSRS2007) / Louisiana South",9001,4759,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+3553,"NAD83(NSRS2007) / Louisiana South (ftUS)",9003,4759,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+3554,"NAD83(NSRS2007) / Maine CS2000 Central",9001,4759,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3555,"NAD83(NSRS2007) / Maine CS2000 East",9001,4759,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+3556,"NAD83(NSRS2007) / Maine CS2000 West",9001,4759,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3557,"NAD83(NSRS2007) / Maine East",9001,4759,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3558,"NAD83(NSRS2007) / Maine West",9001,4759,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,,
+3559,"NAD83(NSRS2007) / Maryland",9001,4759,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3560,"NAD83 / Utah North (ftUS)",9003,4269,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,,
+3561,"Old Hawaiian / Hawaii zone 1",9003,4135,15101,9807,1,0,4497,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+3562,"Old Hawaiian / Hawaii zone 2",9003,4135,15102,9807,1,0,4497,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+3563,"Old Hawaiian / Hawaii zone 3",9003,4135,15103,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+3564,"Old Hawaiian / Hawaii zone 4",9003,4135,15104,9807,1,0,4497,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+3565,"Old Hawaiian / Hawaii zone 5",9003,4135,15105,9807,1,0,4497,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+3566,"NAD83 / Utah Central (ftUS)",9003,4269,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,,
+3567,"NAD83 / Utah South (ftUS)",9003,4269,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,,
+3568,"NAD83(HARN) / Utah North (ftUS)",9003,4152,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,,
+3569,"NAD83(HARN) / Utah Central (ftUS)",9003,4152,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,,
+3570,"NAD83(HARN) / Utah South (ftUS)",9003,4152,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,,
+3571,"WGS 84 / North Pole LAEA Bering Sea",9001,4326,17295,9820,1,0,4464,8801,90,9102,8802,180,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3572,"WGS 84 / North Pole LAEA Alaska",9001,4326,17296,9820,1,0,4467,8801,90,9102,8802,-150,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3573,"WGS 84 / North Pole LAEA Canada",9001,4326,17297,9820,1,0,4466,8801,90,9102,8802,-100,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3574,"WGS 84 / North Pole LAEA Atlantic",9001,4326,17298,9820,1,0,4465,8801,90,9102,8802,-40,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3575,"WGS 84 / North Pole LAEA Europe",9001,4326,17299,9820,1,0,4463,8801,90,9102,8802,10,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3576,"WGS 84 / North Pole LAEA Russia",9001,4326,17300,9820,1,0,1035,8801,90,9102,8802,90,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3577,"GDA94 / Australian Albers",9001,4283,17365,9822,1,0,4400,8821,0,9102,8822,132,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3578,"NAD83 / Yukon Albers",9001,4269,19858,9822,1,0,4400,8821,59,9110,8822,-132.3,9110,8823,61.4,9110,8824,68,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+3579,"NAD83(CSRS) / Yukon Albers",9001,4617,19858,9822,1,0,4400,8821,59,9110,8822,-132.3,9110,8823,61.4,9110,8824,68,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+3580,"NAD83 / NWT Lambert",9001,4269,19857,9802,1,0,4400,8821,0,9102,8822,-112,9102,8823,62,9102,8824,70,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3581,"NAD83(CSRS) / NWT Lambert",9001,4617,19857,9802,1,0,4400,8821,0,9102,8822,-112,9102,8823,62,9102,8824,70,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3582,"NAD83(NSRS2007) / Maryland (ftUS)",9003,4759,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,,
+3583,"NAD83(NSRS2007) / Massachusetts Island",9001,4759,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3584,"NAD83(NSRS2007) / Massachusetts Island (ftUS)",9003,4759,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+3585,"NAD83(NSRS2007) / Massachusetts Mainland",9001,4759,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,,
+3586,"NAD83(NSRS2007) / Massachusetts Mainland (ftUS)",9003,4759,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,,
+3587,"NAD83(NSRS2007) / Michigan Central",9001,4759,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,,
+3588,"NAD83(NSRS2007) / Michigan Central (ft)",9002,4759,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,,
+3589,"NAD83(NSRS2007) / Michigan North",9001,4759,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,,
+3590,"NAD83(NSRS2007) / Michigan North (ft)",9002,4759,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,,
+3591,"NAD83(NSRS2007) / Michigan Oblique Mercator",9001,4759,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,,
+3592,"NAD83(NSRS2007) / Michigan South",9001,4759,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,,
+3593,"NAD83(NSRS2007) / Michigan South (ft)",9002,4759,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,,
+3594,"NAD83(NSRS2007) / Minnesota Central",9001,4759,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+3595,"NAD83(NSRS2007) / Minnesota North",9001,4759,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+3596,"NAD83(NSRS2007) / Minnesota South",9001,4759,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+3597,"NAD83(NSRS2007) / Mississippi East",9001,4759,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3598,"NAD83(NSRS2007) / Mississippi East (ftUS)",9003,4759,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3599,"NAD83(NSRS2007) / Mississippi West",9001,4759,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+3600,"NAD83(NSRS2007) / Mississippi West (ftUS)",9003,4759,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+3601,"NAD83(NSRS2007) / Missouri Central",9001,4759,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3602,"NAD83(NSRS2007) / Missouri East",9001,4759,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3603,"NAD83(NSRS2007) / Missouri West",9001,4759,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,,
+3604,"NAD83(NSRS2007) / Montana",9001,4759,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3605,"NAD83(NSRS2007) / Montana (ft)",9002,4759,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+3606,"NAD83(NSRS2007) / Nebraska",9001,4759,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3607,"NAD83(NSRS2007) / Nevada Central",9001,4759,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,,
+3608,"NAD83(NSRS2007) / Nevada Central (ftUS)",9003,4759,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,,
+3609,"NAD83(NSRS2007) / Nevada East",9001,4759,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,,
+3610,"NAD83(NSRS2007) / Nevada East (ftUS)",9003,4759,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,,
+3611,"NAD83(NSRS2007) / Nevada West",9001,4759,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,,
+3612,"NAD83(NSRS2007) / Nevada West (ftUS)",9003,4759,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,,
+3613,"NAD83(NSRS2007) / New Hampshire",9001,4759,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+3614,"NAD83(NSRS2007) / New Hampshire (ftUS)",9003,4759,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+3615,"NAD83(NSRS2007) / New Jersey",9001,4759,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3616,"NAD83(NSRS2007) / New Jersey (ftUS)",9003,4759,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+3617,"NAD83(NSRS2007) / New Mexico Central",9001,4759,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3618,"NAD83(NSRS2007) / New Mexico Central (ftUS)",9003,4759,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+3619,"NAD83(NSRS2007) / New Mexico East",9001,4759,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,,
+3620,"NAD83(NSRS2007) / New Mexico East (ftUS)",9003,4759,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,,
+3621,"NAD83(NSRS2007) / New Mexico West",9001,4759,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,,
+3622,"NAD83(NSRS2007) / New Mexico West (ftUS)",9003,4759,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,,
+3623,"NAD83(NSRS2007) / New York Central",9001,4759,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3624,"NAD83(NSRS2007) / New York Central (ftUS)",9003,4759,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,,
+3625,"NAD83(NSRS2007) / New York East",9001,4759,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+3626,"NAD83(NSRS2007) / New York East (ftUS)",9003,4759,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+3627,"NAD83(NSRS2007) / New York Long Island",9001,4759,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,,
+3628,"NAD83(NSRS2007) / New York Long Island (ftUS)",9003,4759,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,,
+3629,"NAD83(NSRS2007) / New York West",9001,4759,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,,
+3630,"NAD83(NSRS2007) / New York West (ftUS)",9003,4759,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,,
+3631,"NAD83(NSRS2007) / North Carolina",9001,4759,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,,
+3632,"NAD83(NSRS2007) / North Carolina (ftUS)",9003,4759,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+3633,"NAD83(NSRS2007) / North Dakota North",9001,4759,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3634,"NAD83(NSRS2007) / North Dakota North (ft)",9002,4759,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+3635,"NAD83(NSRS2007) / North Dakota South",9001,4759,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3636,"NAD83(NSRS2007) / North Dakota South (ft)",9002,4759,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+3637,"NAD83(NSRS2007) / Ohio North",9001,4759,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3638,"NAD83(NSRS2007) / Ohio South",9001,4759,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3639,"NAD83(NSRS2007) / Oklahoma North",9001,4759,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3640,"NAD83(NSRS2007) / Oklahoma North (ftUS)",9003,4759,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3641,"NAD83(NSRS2007) / Oklahoma South",9001,4759,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3642,"NAD83(NSRS2007) / Oklahoma South (ftUS)",9003,4759,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3643,"NAD83(NSRS2007) / Oregon LCC (m)",9001,4759,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+3644,"NAD83(NSRS2007) / Oregon GIC Lambert (ft)",9002,4759,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,,
+3645,"NAD83(NSRS2007) / Oregon North",9001,4759,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+3646,"NAD83(NSRS2007) / Oregon North (ft)",9002,4759,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,,
+3647,"NAD83(NSRS2007) / Oregon South",9001,4759,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,,
+3648,"NAD83(NSRS2007) / Oregon South (ft)",9002,4759,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,,
+3649,"NAD83(NSRS2007) / Pennsylvania North",9001,4759,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3650,"NAD83(NSRS2007) / Pennsylvania North (ftUS)",9003,4759,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3651,"NAD83(NSRS2007) / Pennsylvania South",9001,4759,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3652,"NAD83(NSRS2007) / Pennsylvania South (ftUS)",9003,4759,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3653,"NAD83(NSRS2007) / Rhode Island",9001,4759,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,,
+3654,"NAD83(NSRS2007) / Rhode Island (ftUS)",9003,4759,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,,
+3655,"NAD83(NSRS2007) / South Carolina",9001,4759,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,,
+3656,"NAD83(NSRS2007) / South Carolina (ft)",9002,4759,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,,
+3657,"NAD83(NSRS2007) / South Dakota North",9001,4759,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3658,"NAD83(NSRS2007) / South Dakota North (ftUS)",9003,4759,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3659,"NAD83(NSRS2007) / South Dakota South",9001,4759,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3660,"NAD83(NSRS2007) / South Dakota South (ftUS)",9003,4759,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3661,"NAD83(NSRS2007) / Tennessee",9001,4759,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3662,"NAD83(NSRS2007) / Tennessee (ftUS)",9003,4759,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3663,"NAD83(NSRS2007) / Texas Central",9001,4759,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,,
+3664,"NAD83(NSRS2007) / Texas Central (ftUS)",9003,4759,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,,
+3665,"NAD83(NSRS2007) / Texas Centric Albers Equal Area",9001,4759,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,,
+3666,"NAD83(NSRS2007) / Texas Centric Lambert Conformal",9001,4759,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,,
+3667,"NAD83(NSRS2007) / Texas North",9001,4759,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,,
+3668,"NAD83(NSRS2007) / Texas North (ftUS)",9003,4759,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,,
+3669,"NAD83(NSRS2007) / Texas North Central",9001,4759,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,,
+3670,"NAD83(NSRS2007) / Texas North Central (ftUS)",9003,4759,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,,
+3671,"NAD83(NSRS2007) / Texas South",9001,4759,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,,
+3672,"NAD83(NSRS2007) / Texas South (ftUS)",9003,4759,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,,
+3673,"NAD83(NSRS2007) / Texas South Central",9001,4759,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,,
+3674,"NAD83(NSRS2007) / Texas South Central (ftUS)",9003,4759,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,,
+3675,"NAD83(NSRS2007) / Utah Central",9001,4759,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,,
+3676,"NAD83(NSRS2007) / Utah Central (ft)",9002,4759,15363,9802,0,0,4495,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640419.948,9002,8827,6561679.79,9002,,,,,,,,,,
+3677,"NAD83(NSRS2007) / Utah Central (ftUS)",9003,4759,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,,
+3678,"NAD83(NSRS2007) / Utah North",9001,4759,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,,
+3679,"NAD83(NSRS2007) / Utah North (ft)",9002,4759,15362,9802,0,0,4495,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640419.948,9002,8827,3280839.895,9002,,,,,,,,,,
+3680,"NAD83(NSRS2007) / Utah North (ftUS)",9003,4759,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,,
+3681,"NAD83(NSRS2007) / Utah South",9001,4759,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,,
+3682,"NAD83(NSRS2007) / Utah South (ft)",9002,4759,15364,9802,0,0,4495,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640419.948,9002,8827,9842519.685,9002,,,,,,,,,,
+3683,"NAD83(NSRS2007) / Utah South (ftUS)",9003,4759,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,,
+3684,"NAD83(NSRS2007) / Vermont",9001,4759,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3685,"NAD83(NSRS2007) / Virginia North",9001,4759,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,,
+3686,"NAD83(NSRS2007) / Virginia North (ftUS)",9003,4759,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,,
+3687,"NAD83(NSRS2007) / Virginia South",9001,4759,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,,
+3688,"NAD83(NSRS2007) / Virginia South (ftUS)",9003,4759,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,,
+3689,"NAD83(NSRS2007) / Washington North",9001,4759,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3690,"NAD83(NSRS2007) / Washington North (ftUS)",9003,4759,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+3691,"NAD83(NSRS2007) / Washington South",9001,4759,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3692,"NAD83(NSRS2007) / Washington South (ftUS)",9003,4759,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+3693,"NAD83(NSRS2007) / West Virginia North",9001,4759,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3694,"NAD83(NSRS2007) / West Virginia South",9001,4759,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3695,"NAD83(NSRS2007) / Wisconsin Central",9001,4759,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3696,"NAD83(NSRS2007) / Wisconsin Central (ftUS)",9003,4759,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3697,"NAD83(NSRS2007) / Wisconsin North",9001,4759,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3698,"NAD83(NSRS2007) / Wisconsin North (ftUS)",9003,4759,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3699,"NAD83(NSRS2007) / Wisconsin South",9001,4759,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+3700,"NAD83(NSRS2007) / Wisconsin South (ftUS)",9003,4759,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3701,"NAD83(NSRS2007) / Wisconsin Transverse Mercator",9001,4759,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,,
+3702,"NAD83(NSRS2007) / Wyoming East",9001,4759,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+3703,"NAD83(NSRS2007) / Wyoming East Central",9001,4759,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,,
+3704,"NAD83(NSRS2007) / Wyoming West Central",9001,4759,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+3705,"NAD83(NSRS2007) / Wyoming West",9001,4759,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,,
+3706,"NAD83(NSRS2007) / UTM zone 59N",9001,4759,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3707,"NAD83(NSRS2007) / UTM zone 60N",9001,4759,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3708,"NAD83(NSRS2007) / UTM zone 1N",9001,4759,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3709,"NAD83(NSRS2007) / UTM zone 2N",9001,4759,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3710,"NAD83(NSRS2007) / UTM zone 3N",9001,4759,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3711,"NAD83(NSRS2007) / UTM zone 4N",9001,4759,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3712,"NAD83(NSRS2007) / UTM zone 5N",9001,4759,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3713,"NAD83(NSRS2007) / UTM zone 6N",9001,4759,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3714,"NAD83(NSRS2007) / UTM zone 7N",9001,4759,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3715,"NAD83(NSRS2007) / UTM zone 8N",9001,4759,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3716,"NAD83(NSRS2007) / UTM zone 9N",9001,4759,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3717,"NAD83(NSRS2007) / UTM zone 10N",9001,4759,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3718,"NAD83(NSRS2007) / UTM zone 11N",9001,4759,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3719,"NAD83(NSRS2007) / UTM zone 12N",9001,4759,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3720,"NAD83(NSRS2007) / UTM zone 13N",9001,4759,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3721,"NAD83(NSRS2007) / UTM zone 14N",9001,4759,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3722,"NAD83(NSRS2007) / UTM zone 15N",9001,4759,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3723,"NAD83(NSRS2007) / UTM zone 16N",9001,4759,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3724,"NAD83(NSRS2007) / UTM zone 17N",9001,4759,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3725,"NAD83(NSRS2007) / UTM zone 18N",9001,4759,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3726,"NAD83(NSRS2007) / UTM zone 19N",9001,4759,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3727,"Reunion 1947 / TM Reunion",9001,4626,19856,9807,1,0,4499,8801,-21.07,9110,8802,55.32,9110,8805,1,9201,8806,160000,9001,8807,50000,9001,,,,,,,,,,,,,
+3728,"NAD83(NSRS2007) / Ohio North (ftUS)",9003,4759,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3729,"NAD83(NSRS2007) / Ohio South (ftUS)",9003,4759,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3730,"NAD83(NSRS2007) / Wyoming East (ftUS)",9003,4759,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,,
+3731,"NAD83(NSRS2007) / Wyoming East Central (ftUS)",9003,4759,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+3732,"NAD83(NSRS2007) / Wyoming West Central (ftUS)",9003,4759,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,,
+3733,"NAD83(NSRS2007) / Wyoming West (ftUS)",9003,4759,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+3734,"NAD83 / Ohio North (ftUS)",9003,4269,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3735,"NAD83 / Ohio South (ftUS)",9003,4269,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3736,"NAD83 / Wyoming East (ftUS)",9003,4269,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,,
+3737,"NAD83 / Wyoming East Central (ftUS)",9003,4269,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+3738,"NAD83 / Wyoming West Central (ftUS)",9003,4269,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,,
+3739,"NAD83 / Wyoming West (ftUS)",9003,4269,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+3740,"NAD83(HARN) / UTM zone 10N",9001,4152,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3741,"NAD83(HARN) / UTM zone 11N",9001,4152,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3742,"NAD83(HARN) / UTM zone 12N",9001,4152,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3743,"NAD83(HARN) / UTM zone 13N",9001,4152,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3744,"NAD83(HARN) / UTM zone 14N",9001,4152,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3745,"NAD83(HARN) / UTM zone 15N",9001,4152,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3746,"NAD83(HARN) / UTM zone 16N",9001,4152,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3747,"NAD83(HARN) / UTM zone 17N",9001,4152,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3748,"NAD83(HARN) / UTM zone 18N",9001,4152,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3749,"NAD83(HARN) / UTM zone 19N",9001,4152,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3750,"NAD83(HARN) / UTM zone 4N",9001,4152,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3751,"NAD83(HARN) / UTM zone 5N",9001,4152,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3752,"WGS 84 / Mercator 41",9001,4326,19855,9804,1,1,4499,8801,-41,9102,8802,100,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3753,"NAD83(HARN) / Ohio North (ftUS)",9003,4152,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3754,"NAD83(HARN) / Ohio South (ftUS)",9003,4152,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+3755,"NAD83(HARN) / Wyoming East (ftUS)",9003,4152,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,,
+3756,"NAD83(HARN) / Wyoming East Central (ftUS)",9003,4152,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+3757,"NAD83(HARN) / Wyoming West Central (ftUS)",9003,4152,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,,
+3758,"NAD83(HARN) / Wyoming West (ftUS)",9003,4152,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+3759,"NAD83 / Hawaii zone 3 (ftUS)",9003,4269,15138,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+3760,"NAD83(HARN) / Hawaii zone 3 (ftUS)",9003,4152,15138,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+3761,"NAD83(CSRS) / UTM zone 22N",9001,4617,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3762,"WGS 84 / South Georgia Lambert",9001,4326,19854,9802,1,0,4400,8821,-55,9102,8822,-37,9102,8823,-54,9110,8824,-54.45,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3763,"ETRS89 / Portugal TM06",9001,4258,19853,9807,1,0,4499,8801,39.400573,9110,8802,-8.075919,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3764,"NZGD2000 / Chatham Island Circuit 2000",9001,4167,17959,9807,1,0,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,400000,9001,8807,800000,9001,,,,,,,,,,,,,
+3765,"HTRS96 / Croatia TM",9001,4761,19851,9807,1,0,4400,8801,0,9102,8802,16.5,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3766,"HTRS96 / Croatia LCC",9001,4761,19852,9802,1,0,4400,8821,0,9102,8822,16.3,9110,8823,45.55,9110,8824,43.05,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+3767,"HTRS96 / UTM zone 33N",9001,4761,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3768,"HTRS96 / UTM zone 34N",9001,4761,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3769,"Bermuda 1957 / UTM zone 20N",9001,4216,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3770,"BDA2000 / Bermuda 2000 National Grid",9001,4762,19849,9807,1,0,4400,8801,32,9110,8802,-64.45,9110,8805,1,9201,8806,550000,9001,8807,100000,9001,,,,,,,,,,,,,
+3771,"NAD27 / Alberta 3TM ref merid 111 W",9001,4267,17722,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3772,"NAD27 / Alberta 3TM ref merid 114 W",9001,4267,17723,9807,1,0,4400,8801,0,9102,8802,-114,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3773,"NAD27 / Alberta 3TM ref merid 117 W",9001,4267,17724,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3774,"NAD27 / Alberta 3TM ref merid 120 W",9001,4267,17725,9807,1,1,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9001,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3775,"NAD83 / Alberta 3TM ref merid 111 W",9001,4269,17722,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3776,"NAD83 / Alberta 3TM ref merid 114 W",9001,4269,17723,9807,1,0,4400,8801,0,9102,8802,-114,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3777,"NAD83 / Alberta 3TM ref merid 117 W",9001,4269,17724,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3778,"NAD83 / Alberta 3TM ref merid 120 W",9001,4269,17725,9807,1,1,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9001,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3779,"NAD83(CSRS) / Alberta 3TM ref merid 111 W",9001,4617,17722,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3780,"NAD83(CSRS) / Alberta 3TM ref merid 114 W",9001,4617,17723,9807,1,0,4400,8801,0,9102,8802,-114,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3781,"NAD83(CSRS) / Alberta 3TM ref merid 117 W",9001,4617,17724,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3782,"NAD83(CSRS) / Alberta 3TM ref merid 120 W",9001,4617,17725,9807,1,1,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9001,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3783,"Pitcairn 2006 / Pitcairn TM 2006",9001,4763,19848,9807,1,0,4400,8801,-25.04067894,9110,8802,-130.06466816,9110,8805,1,9201,8806,14200,9001,8807,15500,9001,,,,,,,,,,,,,
+3784,"Pitcairn 1967 / UTM zone 9S",9001,4729,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3785,"Popular Visualisation CRS / Mercator",9001,4055,19847,9841,1,1,4499,8801,0,9102,8802,0,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3786,"World Equidistant Cylindrical (Sphere)",9001,4047,19968,9823,1,1,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3787,"MGI / Slovene National Grid",9001,4312,19845,9807,1,1,4498,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,500000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+3788,"NZGD2000 / Auckland Islands TM 2000",9001,4167,17960,9807,1,0,4500,8801,0,9102,8802,166,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3789,"NZGD2000 / Campbell Island TM 2000",9001,4167,17961,9807,1,0,4500,8801,0,9102,8802,169,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3790,"NZGD2000 / Antipodes Islands TM 2000",9001,4167,17962,9807,1,0,4500,8801,0,9102,8802,179,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3791,"NZGD2000 / Raoul Island TM 2000",9001,4167,17963,9807,1,0,4500,8801,0,9102,8802,-178,9102,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3793,"NZGD2000 / Chatham Islands TM 2000",9001,4167,17965,9807,1,0,4500,8801,0,9110,8802,-176.3,9110,8805,1,9201,8806,3500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+3794,"Slovenia 1996 / Slovene National Grid",9001,4765,19845,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,500000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+3795,"NAD27 / Cuba Norte",9001,4267,18063,9802,1,0,4532,8821,22.21,9110,8822,-81,9110,8823,23,9110,8824,21.42,9110,8826,500000,9001,8827,280296.016,9001,,,,,,,,,,
+3796,"NAD27 / Cuba Sur",9001,4267,18064,9802,1,0,4532,8821,20.43,9110,8822,-76.5,9110,8823,21.18,9110,8824,20.08,9110,8826,500000,9001,8827,229126.939,9001,,,,,,,,,,
+3797,"NAD27 / MTQ Lambert",9001,4267,19844,9802,1,0,4499,8821,44,9102,8822,-70,9102,8823,50,9102,8824,46,9102,8826,800000,9001,8827,0,9001,,,,,,,,,,
+3798,"NAD83 / MTQ Lambert",9001,4269,19844,9802,1,0,4499,8821,44,9102,8822,-70,9102,8823,50,9102,8824,46,9102,8826,800000,9001,8827,0,9001,,,,,,,,,,
+3799,"NAD83(CSRS) / MTQ Lambert",9001,4617,19844,9802,1,0,4499,8821,44,9102,8822,-70,9102,8823,50,9102,8824,46,9102,8826,800000,9001,8827,0,9001,,,,,,,,,,
+3800,"NAD27 / Alberta 3TM ref merid 120 W",9001,4267,17726,9807,1,0,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3801,"NAD83 / Alberta 3TM ref merid 120 W",9001,4269,17726,9807,1,0,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3802,"NAD83(CSRS) / Alberta 3TM ref merid 120 W",9001,4617,17726,9807,1,0,4400,8801,0,9102,8802,-120,9102,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3812,"ETRS89 / Belgian Lambert 2008",9001,4258,3811,9802,1,0,4499,8821,50.4752134,9110,8822,4.2133177,9110,8823,49.5,9110,8824,51.1,9110,8826,649328,9001,8827,665262,9001,,,,,,,,,,
+3814,"NAD83 / Mississippi TM",9001,4269,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,,
+3815,"NAD83(HARN) / Mississippi TM",9001,4152,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,,
+3816,"NAD83(NSRS2007) / Mississippi TM",9001,4759,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,,
+3825,"TWD97 / TM2 zone 119",9001,3824,3818,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3826,"TWD97 / TM2 zone 121",9001,3824,3820,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3827,"TWD67 / TM2 zone 119",9001,3821,3818,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3828,"TWD67 / TM2 zone 121",9001,3821,3820,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.9999,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+3829,"Hu Tzu Shan 1950 / UTM zone 51N",9001,4236,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3832,"WGS 84 / PDC Mercator",9001,4326,3831,9804,1,0,4400,8801,0,9102,8802,150,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+3833,"Pulkovo 1942(58) / Gauss-Kruger zone 2",9001,4179,16202,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+3834,"Pulkovo 1942(83) / Gauss-Kruger zone 2",9001,4178,16202,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+3835,"Pulkovo 1942(83) / Gauss-Kruger zone 3",9001,4178,16203,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+3836,"Pulkovo 1942(83) / Gauss-Kruger zone 4",9001,4178,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+3837,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3",9001,4179,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+3838,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4",9001,4179,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+3839,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9",9001,4179,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+3840,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10",9001,4179,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+3841,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6",9001,4178,16266,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3842,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",9001,4178,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3843,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",9001,4178,16266,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3844,"Pulkovo 1942(58) / Stereo70",9001,4179,19926,9809,1,0,4530,8801,46,9102,8802,25,9102,8805,0.99975,9201,8806,500000,9001,8807,500000,9001,,,,,,,2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69
+3845,"SWEREF99 / RT90 7.5 gon V emulation",9001,4619,17339,9807,1,0,4530,8801,0,9110,8802,11.18225,9110,8805,1.000006,9201,8806,1500025.141,9001,8807,-667.282,9001,,,,,,,,,,,,,
+3846,"SWEREF99 / RT90 5 gon V emulation",9001,4619,17340,9807,1,0,4530,8801,0,9110,8802,13.332256,9110,8805,1.0000058,9201,8806,1500044.695,9001,8807,-667.13,9001,,,,,,,,,,,,,
+3847,"SWEREF99 / RT90 2.5 gon V emulation",9001,4619,17341,9807,1,0,4530,8801,0,9110,8802,15.4822624306,9110,8805,1.00000561024,9201,8806,1500064.274,9001,8807,-667.711,9001,,,,,,,,,,,,,
+3848,"SWEREF99 / RT90 0 gon emulation",9001,4619,17342,9807,1,0,4530,8801,0,9110,8802,18.032268,9110,8805,1.0000054,9201,8806,1500083.521,9001,8807,-668.844,9001,,,,,,,,,,,,,
+3849,"SWEREF99 / RT90 2.5 gon O emulation",9001,4619,17343,9807,1,0,4530,8801,0,9110,8802,20.182274,9110,8805,1.0000052,9201,8806,1500102.765,9001,8807,-670.706,9001,,,,,,,,,,,,,
+3850,"SWEREF99 / RT90 5 gon O emulation",9001,4619,17344,9807,1,0,4530,8801,0,9110,8802,22.33228,9110,8805,1.0000049,9201,8806,1500121.846,9001,8807,-672.557,9001,,,,,,,,,,,,,
+3851,"NZGD2000 / NZCS2000",9001,4167,17964,9802,1,0,4500,8821,-41,9110,8822,173,9110,8823,-37.3,9110,8824,-44.3,9110,8826,3000000,9001,8827,7000000,9001,,,,,,,,,,
+3852,"RSRGD2000 / DGLC2000",9001,4764,17966,9802,1,0,4500,8821,-90,9110,8822,157,9110,8823,-76.4,9110,8824,-79.2,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+3854,County ST74,9001,4619,3853,9807,1,0,4531,8801,0,9110,8802,18.0328332,9110,8805,0.99999506,9201,8806,100182.7406,9001,8807,-6500620.1207,9001,,,,,,,,,,,,,
+3857,"WGS 84 / Pseudo-Mercator",9001,4326,3856,1024,1,0,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3873,"ETRS89 / GK19FIN",9001,4258,3860,9807,1,0,4500,8801,0,9102,8802,19,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+3874,"ETRS89 / GK20FIN",9001,4258,3861,9807,1,0,4500,8801,0,9102,8802,20,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+3875,"ETRS89 / GK21FIN",9001,4258,3862,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+3876,"ETRS89 / GK22FIN",9001,4258,3863,9807,1,0,4500,8801,0,9102,8802,22,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+3877,"ETRS89 / GK23FIN",9001,4258,3864,9807,1,0,4500,8801,0,9102,8802,23,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+3878,"ETRS89 / GK24FIN",9001,4258,3865,9807,1,0,4500,8801,0,9102,8802,24,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,,
+3879,"ETRS89 / GK25FIN",9001,4258,3866,9807,1,0,4500,8801,0,9102,8802,25,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+3880,"ETRS89 / GK26FIN",9001,4258,3867,9807,1,0,4500,8801,0,9102,8802,26,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+3881,"ETRS89 / GK27FIN",9001,4258,3868,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+3882,"ETRS89 / GK28FIN",9001,4258,3869,9807,1,0,4500,8801,0,9102,8802,28,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+3883,"ETRS89 / GK29FIN",9001,4258,3870,9807,1,0,4500,8801,0,9102,8802,29,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+3884,"ETRS89 / GK30FIN",9001,4258,3871,9807,1,0,4500,8801,0,9102,8802,30,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+3885,"ETRS89 / GK31FIN",9001,4258,3872,9807,1,0,4500,8801,0,9102,8802,31,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+3890,"IGRS / UTM zone 37N",9001,3889,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3891,"IGRS / UTM zone 38N",9001,3889,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3892,"IGRS / UTM zone 39N",9001,3889,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3893,"ED50 / Iraq National Grid",9001,4230,19907,9807,1,0,4400,8801,29.0134566,9110,8802,46.3,9110,8805,0.9994,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,,
+3907,"MGI 1901 / Balkans zone 5",9001,3906,18275,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+3908,"MGI 1901 / Balkans zone 6",9001,3906,18276,9807,1,0,4530,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+3909,"MGI 1901 / Balkans zone 7",9001,3906,18277,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+3910,"MGI 1901 / Balkans zone 8",9001,3906,18278,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+3911,"MGI 1901 / Slovenia Grid",9001,3906,19967,9807,1,0,4530,8801,0,9110,8802,15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3912,"MGI 1901 / Slovene National Grid",9001,3906,19845,9807,1,0,4498,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,500000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+3920,"Puerto Rico / UTM zone 20N",9001,4139,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+3942,"RGF93 / CC42",9001,4171,18101,9802,1,0,4499,8821,42,9102,8822,3,9102,8823,41.25,9102,8824,42.75,9102,8826,1700000,9001,8827,1200000,9001,,,,,,,,,,
+3943,"RGF93 / CC43",9001,4171,18102,9802,1,0,4499,8821,43,9102,8822,3,9102,8823,42.25,9102,8824,43.75,9102,8826,1700000,9001,8827,2200000,9001,,,,,,,,,,
+3944,"RGF93 / CC44",9001,4171,18103,9802,1,0,4499,8821,44,9102,8822,3,9102,8823,43.25,9102,8824,44.75,9102,8826,1700000,9001,8827,3200000,9001,,,,,,,,,,
+3945,"RGF93 / CC45",9001,4171,18104,9802,1,0,4499,8821,45,9102,8822,3,9102,8823,44.25,9102,8824,45.75,9102,8826,1700000,9001,8827,4200000,9001,,,,,,,,,,
+3946,"RGF93 / CC46",9001,4171,18105,9802,1,0,4499,8821,46,9102,8822,3,9102,8823,45.25,9102,8824,46.75,9102,8826,1700000,9001,8827,5200000,9001,,,,,,,,,,
+3947,"RGF93 / CC47",9001,4171,18106,9802,1,0,4499,8821,47,9102,8822,3,9102,8823,46.25,9102,8824,47.75,9102,8826,1700000,9001,8827,6200000,9001,,,,,,,,,,
+3948,"RGF93 / CC48",9001,4171,18107,9802,1,0,4499,8821,48,9102,8822,3,9102,8823,47.25,9102,8824,48.75,9102,8826,1700000,9001,8827,7200000,9001,,,,,,,,,,
+3949,"RGF93 / CC49",9001,4171,18108,9802,1,0,4499,8821,49,9102,8822,3,9102,8823,48.25,9102,8824,49.75,9102,8826,1700000,9001,8827,8200000,9001,,,,,,,,,,
+3950,"RGF93 / CC50",9001,4171,18109,9802,1,0,4499,8821,50,9102,8822,3,9102,8823,49.25,9102,8824,50.75,9102,8826,1700000,9001,8827,9200000,9001,,,,,,,,,,
+3968,"NAD83 / Virginia Lambert",9001,4269,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3969,"NAD83(HARN) / Virginia Lambert",9001,4152,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3970,"NAD83(NSRS2007) / Virginia Lambert",9001,4759,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3973,"WGS 84 / NSIDC EASE-Grid North",9001,4326,3897,1027,1,1,4469,8801,90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3974,"WGS 84 / NSIDC EASE-Grid South",9001,4326,3898,1027,1,1,4470,8801,-90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+3975,"WGS 84 / NSIDC EASE-Grid Global",9001,4326,19869,9834,1,1,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,30,9102,,,,,,,,,,,,,,,,
+3976,"WGS 84 / NSIDC Sea Ice Polar Stereographic South",9001,4326,19866,9829,1,0,4470,8806,0,9001,8807,0,9001,8832,-70,9102,8833,0,9102,,,,,,,,,,,,,,,,
+3978,"NAD83 / Canada Atlas Lambert",9001,4269,3977,9802,1,0,4400,8821,49,9102,8822,-95,9102,8823,49,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3979,"NAD83(CSRS) / Canada Atlas Lambert",9001,4617,3977,9802,1,0,4400,8821,49,9102,8822,-95,9102,8823,49,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+3985,"Katanga 1955 / Katanga Lambert",9001,4695,3980,9802,1,1,4499,8821,9,9102,8822,26,9102,8823,-6.5,9102,8824,-11.5,9102,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+3986,"Katanga 1955 / Katanga Gauss zone A",9001,4695,3981,9807,1,0,4499,8801,-9,9102,8802,30,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+3987,"Katanga 1955 / Katanga Gauss zone B",9001,4695,3982,9807,1,0,4499,8801,-9,9102,8802,28,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+3988,"Katanga 1955 / Katanga Gauss zone C",9001,4695,3983,9807,1,0,4499,8801,-9,9102,8802,26,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+3989,"Katanga 1955 / Katanga Gauss zone D",9001,4695,3984,9807,1,0,4499,8801,-9,9102,8802,24,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+3991,Puerto Rico State Plane CS of 1927,9003,4139,15201,9802,1,0,4497,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,500000,9003,8827,0,9003,,,,,,,,,,
+3992,"Puerto Rico / St. Croix",9003,4139,15202,9802,1,0,4497,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,500000,9003,8827,100000,9003,,,,,,,,,,
+3993,"Guam 1963 / Guam SPCS",9001,4675,15400,9831,1,0,4499,8801,13.282087887,9110,8802,144.445550254,9110,8806,50000,9001,8807,50000,9001,,,,,,,,,,,,,,,,
+3994,"WGS 84 / Mercator 41",9001,4326,19843,9805,1,0,4499,8802,100,9102,8806,0,9001,8807,0,9001,8823,-41,9102,,,,,,,,,,,,,,,,
+3995,"WGS 84 / Arctic Polar Stereographic",9001,4326,19842,9829,1,0,4469,8806,0,9001,8807,0,9001,8832,71,9102,8833,0,9102,,,,,,,,,,,,,,,,
+3996,"WGS 84 / IBCAO Polar Stereographic",9001,4326,19840,9829,1,0,4469,8806,0,9001,8807,0,9001,8832,75,9102,8833,0,9102,,,,,,,,,,,,,,,,
+3997,"WGS 84 / Dubai Local TM",9001,4326,19839,9807,1,0,4400,8801,0,9110,8802,55.2,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4026,"MOLDREF99 / Moldova TM",9001,4023,3999,9807,1,0,4530,8801,0,9110,8802,28.24,9110,8805,0.99994,9201,8806,200000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+4037,"WGS 84 / TMzn35N",9001,4326,16035,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4038,"WGS 84 / TMzn36N",9001,4326,16036,9807,1,0,4500,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4048,"RGRDC 2005 / Congo TM zone 12",9001,4046,17412,9807,1,0,4499,8801,0,9102,8802,12,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4049,"RGRDC 2005 / Congo TM zone 14",9001,4046,17414,9807,1,0,4499,8801,0,9102,8802,14,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4050,"RGRDC 2005 / Congo TM zone 16",9001,4046,17416,9807,1,0,4499,8801,0,9102,8802,16,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4051,"RGRDC 2005 / Congo TM zone 18",9001,4046,17418,9807,1,0,4499,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4056,"RGRDC 2005 / Congo TM zone 20",9001,4046,17420,9807,1,0,4499,8801,0,9102,8802,20,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4057,"RGRDC 2005 / Congo TM zone 22",9001,4046,17422,9807,1,0,4499,8801,0,9102,8802,22,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4058,"RGRDC 2005 / Congo TM zone 24",9001,4046,17424,9807,1,0,4499,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4059,"RGRDC 2005 / Congo TM zone 26",9001,4046,17426,9807,1,0,4499,8801,0,9102,8802,26,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4060,"RGRDC 2005 / Congo TM zone 28",9001,4046,17428,9807,1,0,4499,8801,0,9102,8802,28,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4061,"RGRDC 2005 / UTM zone 33S",9001,4046,16133,9807,1,0,4499,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4062,"RGRDC 2005 / UTM zone 34S",9001,4046,16134,9807,1,0,4499,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4063,"RGRDC 2005 / UTM zone 35S",9001,4046,16135,9807,1,0,4499,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4071,"Chua / UTM zone 23S",9001,4224,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4082,"REGCAN95 / UTM zone 27N",9001,4081,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4083,"REGCAN95 / UTM zone 28N",9001,4081,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4087,"WGS 84 / World Equidistant Cylindrical",9001,4326,4085,1028,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,0,9102,,,,,,,,,,,,,,,,
+4088,"World Equidistant Cylindrical (Sphere)",9001,4047,4086,1029,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,0,9102,,,,,,,,,,,,,,,,
+4093,"ETRS89 / DKTM1",9001,4258,4089,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.99998,9201,8806,200000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+4094,"ETRS89 / DKTM2",9001,4258,4090,9807,1,0,4400,8801,0,9102,8802,10,9102,8805,0.99998,9201,8806,400000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+4095,"ETRS89 / DKTM3",9001,4258,4091,9807,1,0,4400,8801,0,9102,8802,11.75,9102,8805,0.99998,9201,8806,600000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+4096,"ETRS89 / DKTM4",9001,4258,4092,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,800000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+4217,"NAD83 / BLM 59N (ftUS)",9003,4269,4186,9807,1,0,4497,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4390,"Kertau 1968 / Johor Grid",9001,4245,4114,9806,1,0,4400,8801,2.02333,9110,8802,103.334593,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+4391,"Kertau 1968 / Sembilan and Melaka Grid",9001,4245,4115,9806,1,0,4400,8801,2.424422,9110,8802,101.56282,9110,8806,-242.005,9001,8807,-948.547,9001,,,,,,,,,,,,,,,,
+4392,"Kertau 1968 / Pahang Grid",9001,4245,4116,9806,1,0,4400,8801,3.42395,9110,8802,102.261024,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+4393,"Kertau 1968 / Selangor Grid",9001,4245,4117,9806,1,0,4400,8801,3.404924,9110,8802,101.302968,9110,8806,-21759.438,9001,8807,55960.906,9001,,,,,,,,,,,,,,,,
+4394,"Kertau 1968 / Terengganu Grid",9001,4245,4177,9806,1,0,4400,8801,4.564611,9110,8802,102.534275,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+4395,"Kertau 1968 / Pinang Grid",9001,4245,4305,9806,1,0,4400,8801,5.251677,9110,8802,100.204513,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+4396,"Kertau 1968 / Kedah and Perlis Grid",9001,4245,4320,9806,1,0,4400,8801,5.575453,9110,8802,100.381534,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+4397,"Kertau 1968 / Perak Revised Grid",9001,4245,4321,9806,1,0,4400,8801,4.513377,9110,8802,100.490036,9110,8806,0,9001,8807,133453.669,9001,,,,,,,,,,,,,,,,
+4398,"Kertau 1968 / Kelantan Grid",9001,4245,4323,9806,1,0,4400,8801,5.533812,9110,8802,102.103825,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+4399,"NAD27 / BLM 59N (ftUS)",9003,4267,4186,9807,1,0,4497,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4400,"NAD27 / BLM 60N (ftUS)",9003,4267,4187,9807,1,0,4497,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4401,"NAD27 / BLM 1N (ftUS)",9003,4267,4101,9807,1,0,4497,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4402,"NAD27 / BLM 2N (ftUS)",9003,4267,4102,9807,1,0,4497,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4403,"NAD27 / BLM 3N (ftUS)",9003,4267,4103,9807,1,0,4497,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4404,"NAD27 / BLM 4N (ftUS)",9003,4267,4104,9807,1,0,4497,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4405,"NAD27 / BLM 5N (ftUS)",9003,4267,4105,9807,1,0,4497,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4406,"NAD27 / BLM 6N (ftUS)",9003,4267,4106,9807,1,0,4497,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4407,"NAD27 / BLM 7N (ftUS)",9003,4267,4107,9807,1,0,4497,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4408,"NAD27 / BLM 8N (ftUS)",9003,4267,4108,9807,1,0,4497,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4409,"NAD27 / BLM 9N (ftUS)",9003,4267,4109,9807,1,0,4497,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4410,"NAD27 / BLM 10N (ftUS)",9003,4267,4110,9807,1,0,4497,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4411,"NAD27 / BLM 11N (ftUS)",9003,4267,4111,9807,1,0,4497,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4412,"NAD27 / BLM 12N (ftUS)",9003,4267,4112,9807,1,0,4497,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4413,"NAD27 / BLM 13N (ftUS)",9003,4267,4113,9807,1,0,4497,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4414,"NAD83(HARN) / Guam Map Grid",9001,4152,4325,9807,1,0,4499,8801,13.3,9110,8802,144.45,9110,8805,1,9201,8806,100000,9001,8807,200000,9001,,,,,,,,,,,,,
+4415,"Katanga 1955 / Katanga Lambert",9001,4695,4416,9802,1,0,4499,8821,-9,9102,8822,26,9102,8823,-6.5,9102,8824,-11.5,9102,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+4417,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7",9001,4178,16267,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+4418,"NAD27 / BLM 18N (ftUS)",9003,4267,4118,9807,1,0,4497,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4419,"NAD27 / BLM 19N (ftUS)",9003,4267,4119,9807,1,0,4497,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4420,"NAD83 / BLM 60N (ftUS)",9003,4269,4187,9807,1,0,4497,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4421,"NAD83 / BLM 1N (ftUS)",9003,4269,4101,9807,1,0,4497,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4422,"NAD83 / BLM 2N (ftUS)",9003,4269,4102,9807,1,0,4497,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4423,"NAD83 / BLM 3N (ftUS)",9003,4269,4103,9807,1,0,4497,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4424,"NAD83 / BLM 4N (ftUS)",9003,4269,4104,9807,1,0,4497,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4425,"NAD83 / BLM 5N (ftUS)",9003,4269,4105,9807,1,0,4497,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4426,"NAD83 / BLM 6N (ftUS)",9003,4269,4106,9807,1,0,4497,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4427,"NAD83 / BLM 7N (ftUS)",9003,4269,4107,9807,1,0,4497,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4428,"NAD83 / BLM 8N (ftUS)",9003,4269,4108,9807,1,0,4497,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4429,"NAD83 / BLM 9N (ftUS)",9003,4269,4109,9807,1,0,4497,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4430,"NAD83 / BLM 10N (ftUS)",9003,4269,4110,9807,1,0,4497,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4431,"NAD83 / BLM 11N (ftUS)",9003,4269,4111,9807,1,0,4497,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4432,"NAD83 / BLM 12N (ftUS)",9003,4269,4112,9807,1,0,4497,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4433,"NAD83 / BLM 13N (ftUS)",9003,4269,4113,9807,1,0,4497,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4434,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8",9001,4178,16268,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+4437,"NAD83(NSRS2007) / Puerto Rico and Virgin Is.",9001,4759,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,,
+4438,"NAD83 / BLM 18N (ftUS)",9003,4269,4118,9807,1,0,4497,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4439,"NAD83 / BLM 19N (ftUS)",9003,4269,4119,9807,1,0,4497,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+4455,"NAD27 / Pennsylvania South",9003,4267,4436,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+4456,"NAD27 / New York Long Island",9003,4267,4454,9802,1,0,4497,8821,40.3,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,2000000,9003,8827,100000,9003,,,,,,,,,,
+4457,"NAD83 / South Dakota North (ftUS)",9003,4269,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+4462,"WGS 84 / Australian Centre for Remote Sensing Lambert",9001,4326,4460,9802,1,0,4400,8821,-27,9102,8822,132,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+4467,"RGSPM06 / UTM zone 21N",9001,4463,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4471,"RGM04 / UTM zone 38S",9001,4470,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4474,"Cadastre 1997 / UTM zone 38S",9001,4632,16138,9807,1,1,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+4484,"Mexico ITRF92 / UTM zone 11N",9001,4483,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4485,"Mexico ITRF92 / UTM zone 12N",9001,4483,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4486,"Mexico ITRF92 / UTM zone 13N",9001,4483,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4487,"Mexico ITRF92 / UTM zone 14N",9001,4483,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4488,"Mexico ITRF92 / UTM zone 15N",9001,4483,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4489,"Mexico ITRF92 / UTM zone 16N",9001,4483,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4491,"CGCS2000 / Gauss-Kruger zone 13",9001,4490,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+4492,"CGCS2000 / Gauss-Kruger zone 14",9001,4490,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+4493,"CGCS2000 / Gauss-Kruger zone 15",9001,4490,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+4494,"CGCS2000 / Gauss-Kruger zone 16",9001,4490,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+4495,"CGCS2000 / Gauss-Kruger zone 17",9001,4490,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+4496,"CGCS2000 / Gauss-Kruger zone 18",9001,4490,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+4497,"CGCS2000 / Gauss-Kruger zone 19",9001,4490,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+4498,"CGCS2000 / Gauss-Kruger zone 20",9001,4490,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+4499,"CGCS2000 / Gauss-Kruger zone 21",9001,4490,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+4500,"CGCS2000 / Gauss-Kruger zone 22",9001,4490,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+4501,"CGCS2000 / Gauss-Kruger zone 23",9001,4490,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+4502,"CGCS2000 / Gauss-Kruger CM 75E",9001,4490,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4503,"CGCS2000 / Gauss-Kruger CM 81E",9001,4490,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4504,"CGCS2000 / Gauss-Kruger CM 87E",9001,4490,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4505,"CGCS2000 / Gauss-Kruger CM 93E",9001,4490,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4506,"CGCS2000 / Gauss-Kruger CM 99E",9001,4490,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4507,"CGCS2000 / Gauss-Kruger CM 105E",9001,4490,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4508,"CGCS2000 / Gauss-Kruger CM 111E",9001,4490,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4509,"CGCS2000 / Gauss-Kruger CM 117E",9001,4490,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4510,"CGCS2000 / Gauss-Kruger CM 123E",9001,4490,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4511,"CGCS2000 / Gauss-Kruger CM 129E",9001,4490,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4512,"CGCS2000 / Gauss-Kruger CM 135E",9001,4490,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4513,"CGCS2000 / 3-degree Gauss-Kruger zone 25",9001,4490,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+4514,"CGCS2000 / 3-degree Gauss-Kruger zone 26",9001,4490,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+4515,"CGCS2000 / 3-degree Gauss-Kruger zone 27",9001,4490,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+4516,"CGCS2000 / 3-degree Gauss-Kruger zone 28",9001,4490,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+4517,"CGCS2000 / 3-degree Gauss-Kruger zone 29",9001,4490,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+4518,"CGCS2000 / 3-degree Gauss-Kruger zone 30",9001,4490,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+4519,"CGCS2000 / 3-degree Gauss-Kruger zone 31",9001,4490,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+4520,"CGCS2000 / 3-degree Gauss-Kruger zone 32",9001,4490,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+4521,"CGCS2000 / 3-degree Gauss-Kruger zone 33",9001,4490,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+4522,"CGCS2000 / 3-degree Gauss-Kruger zone 34",9001,4490,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,,
+4523,"CGCS2000 / 3-degree Gauss-Kruger zone 35",9001,4490,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,,
+4524,"CGCS2000 / 3-degree Gauss-Kruger zone 36",9001,4490,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,,
+4525,"CGCS2000 / 3-degree Gauss-Kruger zone 37",9001,4490,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,,
+4526,"CGCS2000 / 3-degree Gauss-Kruger zone 38",9001,4490,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,,
+4527,"CGCS2000 / 3-degree Gauss-Kruger zone 39",9001,4490,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,,
+4528,"CGCS2000 / 3-degree Gauss-Kruger zone 40",9001,4490,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,,
+4529,"CGCS2000 / 3-degree Gauss-Kruger zone 41",9001,4490,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,,
+4530,"CGCS2000 / 3-degree Gauss-Kruger zone 42",9001,4490,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,,
+4531,"CGCS2000 / 3-degree Gauss-Kruger zone 43",9001,4490,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,,
+4532,"CGCS2000 / 3-degree Gauss-Kruger zone 44",9001,4490,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,,
+4533,"CGCS2000 / 3-degree Gauss-Kruger zone 45",9001,4490,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,,
+4534,"CGCS2000 / 3-degree Gauss-Kruger CM 75E",9001,4490,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4535,"CGCS2000 / 3-degree Gauss-Kruger CM 78E",9001,4490,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4536,"CGCS2000 / 3-degree Gauss-Kruger CM 81E",9001,4490,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4537,"CGCS2000 / 3-degree Gauss-Kruger CM 84E",9001,4490,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4538,"CGCS2000 / 3-degree Gauss-Kruger CM 87E",9001,4490,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4539,"CGCS2000 / 3-degree Gauss-Kruger CM 90E",9001,4490,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4540,"CGCS2000 / 3-degree Gauss-Kruger CM 93E",9001,4490,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4541,"CGCS2000 / 3-degree Gauss-Kruger CM 96E",9001,4490,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4542,"CGCS2000 / 3-degree Gauss-Kruger CM 99E",9001,4490,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4543,"CGCS2000 / 3-degree Gauss-Kruger CM 102E",9001,4490,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4544,"CGCS2000 / 3-degree Gauss-Kruger CM 105E",9001,4490,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4545,"CGCS2000 / 3-degree Gauss-Kruger CM 108E",9001,4490,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4546,"CGCS2000 / 3-degree Gauss-Kruger CM 111E",9001,4490,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4547,"CGCS2000 / 3-degree Gauss-Kruger CM 114E",9001,4490,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4548,"CGCS2000 / 3-degree Gauss-Kruger CM 117E",9001,4490,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4549,"CGCS2000 / 3-degree Gauss-Kruger CM 120E",9001,4490,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4550,"CGCS2000 / 3-degree Gauss-Kruger CM 123E",9001,4490,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4551,"CGCS2000 / 3-degree Gauss-Kruger CM 126E",9001,4490,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4552,"CGCS2000 / 3-degree Gauss-Kruger CM 129E",9001,4490,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4553,"CGCS2000 / 3-degree Gauss-Kruger CM 132E",9001,4490,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4554,"CGCS2000 / 3-degree Gauss-Kruger CM 135E",9001,4490,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4559,"RRAF 1991 / UTM zone 20N",9001,4558,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4568,"New Beijing / Gauss-Kruger zone 13",9001,4555,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+4569,"New Beijing / Gauss-Kruger zone 14",9001,4555,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+4570,"New Beijing / Gauss-Kruger zone 15",9001,4555,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+4571,"New Beijing / Gauss-Kruger zone 16",9001,4555,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+4572,"New Beijing / Gauss-Kruger zone 17",9001,4555,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+4573,"New Beijing / Gauss-Kruger zone 18",9001,4555,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+4574,"New Beijing / Gauss-Kruger zone 19",9001,4555,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+4575,"New Beijing / Gauss-Kruger zone 20",9001,4555,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+4576,"New Beijing / Gauss-Kruger zone 21",9001,4555,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+4577,"New Beijing / Gauss-Kruger zone 22",9001,4555,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+4578,"New Beijing / Gauss-Kruger zone 23",9001,4555,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+4579,"New Beijing / Gauss-Kruger CM 75E",9001,4555,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4580,"New Beijing / Gauss-Kruger CM 81E",9001,4555,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4581,"New Beijing / Gauss-Kruger CM 87E",9001,4555,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4582,"New Beijing / Gauss-Kruger CM 93E",9001,4555,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4583,"New Beijing / Gauss-Kruger CM 99E",9001,4555,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4584,"New Beijing / Gauss-Kruger CM 105E",9001,4555,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4585,"New Beijing / Gauss-Kruger CM 111E",9001,4555,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4586,"New Beijing / Gauss-Kruger CM 117E",9001,4555,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4587,"New Beijing / Gauss-Kruger CM 123E",9001,4555,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4588,"New Beijing / Gauss-Kruger CM 129E",9001,4555,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4589,"New Beijing / Gauss-Kruger CM 135E",9001,4555,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4647,"ETRS89 / UTM zone 32N (zE-N)",9001,4258,4648,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+4652,"New Beijing / 3-degree Gauss-Kruger zone 25",9001,4555,16285,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+4653,"New Beijing / 3-degree Gauss-Kruger zone 26",9001,4555,16286,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+4654,"New Beijing / 3-degree Gauss-Kruger zone 27",9001,4555,16287,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+4655,"New Beijing / 3-degree Gauss-Kruger zone 28",9001,4555,16288,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+4656,"New Beijing / 3-degree Gauss-Kruger zone 29",9001,4555,16289,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+4766,"New Beijing / 3-degree Gauss-Kruger zone 30",9001,4555,16290,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+4767,"New Beijing / 3-degree Gauss-Kruger zone 31",9001,4555,16291,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+4768,"New Beijing / 3-degree Gauss-Kruger zone 32",9001,4555,16292,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+4769,"New Beijing / 3-degree Gauss-Kruger zone 33",9001,4555,16293,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+4770,"New Beijing / 3-degree Gauss-Kruger zone 34",9001,4555,16294,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,34500000,9001,8807,0,9001,,,,,,,,,,,,,
+4771,"New Beijing / 3-degree Gauss-Kruger zone 35",9001,4555,16295,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,35500000,9001,8807,0,9001,,,,,,,,,,,,,
+4772,"New Beijing / 3-degree Gauss-Kruger zone 36",9001,4555,16296,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,36500000,9001,8807,0,9001,,,,,,,,,,,,,
+4773,"New Beijing / 3-degree Gauss-Kruger zone 37",9001,4555,16297,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,37500000,9001,8807,0,9001,,,,,,,,,,,,,
+4774,"New Beijing / 3-degree Gauss-Kruger zone 38",9001,4555,16298,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,38500000,9001,8807,0,9001,,,,,,,,,,,,,
+4775,"New Beijing / 3-degree Gauss-Kruger zone 39",9001,4555,16299,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,39500000,9001,8807,0,9001,,,,,,,,,,,,,
+4776,"New Beijing / 3-degree Gauss-Kruger zone 40",9001,4555,16070,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,40500000,9001,8807,0,9001,,,,,,,,,,,,,
+4777,"New Beijing / 3-degree Gauss-Kruger zone 41",9001,4555,16071,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,41500000,9001,8807,0,9001,,,,,,,,,,,,,
+4778,"New Beijing / 3-degree Gauss-Kruger zone 42",9001,4555,16072,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,42500000,9001,8807,0,9001,,,,,,,,,,,,,
+4779,"New Beijing / 3-degree Gauss-Kruger zone 43",9001,4555,16073,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,43500000,9001,8807,0,9001,,,,,,,,,,,,,
+4780,"New Beijing / 3-degree Gauss-Kruger zone 44",9001,4555,16074,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,44500000,9001,8807,0,9001,,,,,,,,,,,,,
+4781,"New Beijing / 3-degree Gauss-Kruger zone 45",9001,4555,16075,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,45500000,9001,8807,0,9001,,,,,,,,,,,,,
+4782,"New Beijing / 3-degree Gauss-Kruger CM 75E",9001,4555,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4783,"New Beijing / 3-degree Gauss-Kruger CM 78E",9001,4555,16386,9807,1,0,4530,8801,0,9102,8802,78,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4784,"New Beijing / 3-degree Gauss-Kruger CM 81E",9001,4555,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4785,"New Beijing / 3-degree Gauss-Kruger CM 84E",9001,4555,16388,9807,1,0,4530,8801,0,9102,8802,84,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4786,"New Beijing / 3-degree Gauss-Kruger CM 87E",9001,4555,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4787,"New Beijing / 3-degree Gauss-Kruger CM 90E",9001,4555,16390,9807,1,0,4530,8801,0,9102,8802,90,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4788,"New Beijing / 3-degree Gauss-Kruger CM 93E",9001,4555,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4789,"New Beijing / 3-degree Gauss-Kruger CM 96E",9001,4555,16392,9807,1,0,4530,8801,0,9102,8802,96,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4790,"New Beijing / 3-degree Gauss-Kruger CM 99E",9001,4555,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4791,"New Beijing / 3-degree Gauss-Kruger CM 102E",9001,4555,16394,9807,1,0,4530,8801,0,9102,8802,102,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4792,"New Beijing / 3-degree Gauss-Kruger CM 105E",9001,4555,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4793,"New Beijing / 3-degree Gauss-Kruger CM 108E",9001,4555,16396,9807,1,0,4530,8801,0,9102,8802,108,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4794,"New Beijing / 3-degree Gauss-Kruger CM 111E",9001,4555,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4795,"New Beijing / 3-degree Gauss-Kruger CM 114E",9001,4555,16398,9807,1,0,4530,8801,0,9102,8802,114,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4796,"New Beijing / 3-degree Gauss-Kruger CM 117E",9001,4555,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4797,"New Beijing / 3-degree Gauss-Kruger CM 120E",9001,4555,16170,9807,1,0,4530,8801,0,9102,8802,120,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4798,"New Beijing / 3-degree Gauss-Kruger CM 123E",9001,4555,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4799,"New Beijing / 3-degree Gauss-Kruger CM 126E",9001,4555,16172,9807,1,0,4530,8801,0,9102,8802,126,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4800,"New Beijing / 3-degree Gauss-Kruger CM 129E",9001,4555,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4812,"New Beijing / 3-degree Gauss-Kruger CM 132E",9001,4555,16174,9807,1,0,4530,8801,0,9102,8802,132,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4822,"New Beijing / 3-degree Gauss-Kruger CM 135E",9001,4555,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+4826,"WGS 84 / Cape Verde National",9001,4326,4825,9802,1,0,1024,8821,15.5,9110,8822,-24,9110,8823,15,9110,8824,16.4,9110,8826,161587.83,9001,8827,128511.202,9001,,,,,,,,,,
+4839,"ETRS89 / LCC Germany (N-E)",9001,4258,4838,9802,1,0,4500,8821,51,9102,8822,10.3,9110,8823,48.4,9110,8824,53.4,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+4855,"ETRS89 / NTM zone 5",9001,4258,4845,9807,1,1,4500,8801,0,9110,8802,5.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4856,"ETRS89 / NTM zone 6",9001,4258,4846,9807,1,1,4500,8801,0,9110,8802,6.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4857,"ETRS89 / NTM zone 7",9001,4258,4847,9807,1,1,4500,8801,0,9110,8802,7.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4858,"ETRS89 / NTM zone 8",9001,4258,4848,9807,1,1,4500,8801,0,9110,8802,8.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4859,"ETRS89 / NTM zone 9",9001,4258,4849,9807,1,1,4500,8801,0,9110,8802,9.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4860,"ETRS89 / NTM zone 10",9001,4258,4850,9807,1,1,4500,8801,0,9110,8802,10.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4861,"ETRS89 / NTM zone 11",9001,4258,4851,9807,1,1,4500,8801,0,9110,8802,11.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4862,"ETRS89 / NTM zone 12",9001,4258,4852,9807,1,1,4500,8801,0,9110,8802,12.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4863,"ETRS89 / NTM zone 13",9001,4258,4853,9807,1,1,4500,8801,0,9110,8802,13.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4864,"ETRS89 / NTM zone 14",9001,4258,4854,9807,1,1,4500,8801,0,9110,8802,14.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4865,"ETRS89 / NTM zone 15",9001,4258,4841,9807,1,1,4500,8801,0,9110,8802,15.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4866,"ETRS89 / NTM zone 16",9001,4258,4842,9807,1,1,4500,8801,0,9110,8802,16.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4867,"ETRS89 / NTM zone 17",9001,4258,4843,9807,1,1,4500,8801,0,9110,8802,17.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4868,"ETRS89 / NTM zone 18",9001,4258,4844,9807,1,1,4500,8801,0,9110,8802,18.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4869,"ETRS89 / NTM zone 19",9001,4258,4881,9807,1,1,4500,8801,0,9110,8802,19.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4870,"ETRS89 / NTM zone 20",9001,4258,5000,9807,1,1,4500,8801,0,9110,8802,20.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4871,"ETRS89 / NTM zone 21",9001,4258,5001,9807,1,1,4500,8801,0,9110,8802,21.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4872,"ETRS89 / NTM zone 22",9001,4258,5002,9807,1,1,4500,8801,0,9110,8802,22.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4873,"ETRS89 / NTM zone 23",9001,4258,5003,9807,1,1,4500,8801,0,9110,8802,23.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4874,"ETRS89 / NTM zone 24",9001,4258,5004,9807,1,1,4500,8801,0,9110,8802,24.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4875,"ETRS89 / NTM zone 25",9001,4258,5005,9807,1,1,4500,8801,0,9110,8802,25.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4876,"ETRS89 / NTM zone 26",9001,4258,5006,9807,1,1,4500,8801,0,9110,8802,26.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4877,"ETRS89 / NTM zone 27",9001,4258,5007,9807,1,1,4500,8801,0,9110,8802,27.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4878,"ETRS89 / NTM zone 28",9001,4258,5008,9807,1,1,4500,8801,0,9110,8802,28.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4879,"ETRS89 / NTM zone 29",9001,4258,5009,9807,1,1,4500,8801,0,9110,8802,29.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+4880,"ETRS89 / NTM zone 30",9001,4258,5010,9807,1,1,4500,8801,0,9110,8802,30.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5014,"PTRA08 / UTM zone 25N",9001,5013,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5015,"PTRA08 / UTM zone 26N",9001,5013,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5016,"PTRA08 / UTM zone 28N",9001,5013,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5017,"Lisbon 1890 / Portugal Bonne New",9001,4666,5019,9828,1,0,6509,8801,39.4,9110,8802,-8.0754862,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+5018,"Lisbon / Portuguese Grid New",9001,4207,5020,9807,1,0,4499,8801,39.4,9110,8802,-8.0754862,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+5041,"WGS 84 / UPS North (E,N)",9001,4326,16061,9810,1,0,1026,8801,90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5042,"WGS 84 / UPS South (E,N)",9001,4326,16161,9810,1,0,1027,8801,-90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5048,"ETRS89 / TM35FIN(N,E)",9001,4258,16065,9807,1,0,4500,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5069,"NAD27 / Conus Albers",9001,4267,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+5070,"NAD83 / Conus Albers",9001,4269,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+5071,"NAD83(HARN) / Conus Albers",9001,4152,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+5072,"NAD83(NSRS2007) / Conus Albers",9001,4759,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+5105,"ETRS89 / NTM zone 5",9001,4258,5135,9807,1,0,4500,8801,58,9110,8802,5.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5106,"ETRS89 / NTM zone 6",9001,4258,5136,9807,1,0,4500,8801,58,9110,8802,6.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5107,"ETRS89 / NTM zone 7",9001,4258,5137,9807,1,0,4500,8801,58,9110,8802,7.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5108,"ETRS89 / NTM zone 8",9001,4258,5138,9807,1,0,4500,8801,58,9110,8802,8.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5109,"ETRS89 / NTM zone 9",9001,4258,5139,9807,1,0,4500,8801,58,9110,8802,9.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5110,"ETRS89 / NTM zone 10",9001,4258,5140,9807,1,0,4500,8801,58,9110,8802,10.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5111,"ETRS89 / NTM zone 11",9001,4258,5141,9807,1,0,4500,8801,58,9110,8802,11.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5112,"ETRS89 / NTM zone 12",9001,4258,5142,9807,1,0,4500,8801,58,9110,8802,12.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5113,"ETRS89 / NTM zone 13",9001,4258,5143,9807,1,0,4500,8801,58,9110,8802,13.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5114,"ETRS89 / NTM zone 14",9001,4258,5144,9807,1,0,4500,8801,58,9110,8802,14.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5115,"ETRS89 / NTM zone 15",9001,4258,5145,9807,1,0,4500,8801,58,9110,8802,15.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5116,"ETRS89 / NTM zone 16",9001,4258,5146,9807,1,0,4500,8801,58,9110,8802,16.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5117,"ETRS89 / NTM zone 17",9001,4258,5147,9807,1,0,4500,8801,58,9110,8802,17.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5118,"ETRS89 / NTM zone 18",9001,4258,5148,9807,1,0,4500,8801,58,9110,8802,18.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5119,"ETRS89 / NTM zone 19",9001,4258,5149,9807,1,0,4500,8801,58,9110,8802,19.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5120,"ETRS89 / NTM zone 20",9001,4258,5150,9807,1,0,4500,8801,58,9110,8802,20.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5121,"ETRS89 / NTM zone 21",9001,4258,5151,9807,1,0,4500,8801,58,9110,8802,21.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5122,"ETRS89 / NTM zone 22",9001,4258,5152,9807,1,0,4500,8801,58,9110,8802,22.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5123,"ETRS89 / NTM zone 23",9001,4258,5153,9807,1,0,4500,8801,58,9110,8802,23.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5124,"ETRS89 / NTM zone 24",9001,4258,5154,9807,1,0,4500,8801,58,9110,8802,24.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5125,"ETRS89 / NTM zone 25",9001,4258,5155,9807,1,0,4500,8801,58,9110,8802,25.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5126,"ETRS89 / NTM zone 26",9001,4258,5156,9807,1,0,4500,8801,58,9110,8802,26.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5127,"ETRS89 / NTM zone 27",9001,4258,5157,9807,1,0,4500,8801,58,9110,8802,27.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5128,"ETRS89 / NTM zone 28",9001,4258,5158,9807,1,0,4500,8801,58,9110,8802,28.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5129,"ETRS89 / NTM zone 29",9001,4258,5159,9807,1,0,4500,8801,58,9110,8802,29.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5130,"ETRS89 / NTM zone 30",9001,4258,5160,9807,1,0,4500,8801,58,9110,8802,30.3,9110,8805,1,9201,8806,100000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5167,"Korean 1985 / East Sea Belt",9001,4162,5049,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5168,"Korean 1985 / Central Belt Jeju",9001,4162,5131,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,550000,9001,,,,,,,,,,,,,
+5169,"Tokyo 1892 / Korea West Belt",9001,5132,18253,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5170,"Tokyo 1892 / Korea Central Belt",9001,5132,18252,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5171,"Tokyo 1892 / Korea East Belt",9001,5132,18251,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5172,"Tokyo 1892 / Korea East Sea Belt",9001,5132,5049,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5173,"Korean 1985 / Modified West Belt",9001,4162,5161,9807,1,0,4530,8801,38,9102,8802,125.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5174,"Korean 1985 / Modified Central Belt",9001,4162,5162,9807,1,0,4530,8801,38,9102,8802,127.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5175,"Korean 1985 / Modified Central Belt Jeju",9001,4162,5163,9807,1,0,4530,8801,38,9102,8802,127.0010405,9110,8805,1,9201,8806,200000,9001,8807,550000,9001,,,,,,,,,,,,,
+5176,"Korean 1985 / Modified East Belt",9001,4162,5164,9807,1,0,4530,8801,38,9102,8802,129.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5177,"Korean 1985 / Modified East Sea Belt",9001,4162,5165,9807,1,0,4530,8801,38,9102,8802,131.0010405,9110,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5178,"Korean 1985 / Unified CS",9001,4162,5100,9807,1,0,4530,8801,38,9102,8802,127.3,9110,8805,0.9996,9201,8806,1000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5179,"Korea 2000 / Unified CS",9001,4737,5100,9807,1,0,4530,8801,38,9102,8802,127.3,9110,8805,0.9996,9201,8806,1000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5180,"Korea 2000 / West Belt",9001,4737,18253,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5181,"Korea 2000 / Central Belt",9001,4737,18252,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5182,"Korea 2000 / Central Belt Jeju",9001,4737,5131,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,550000,9001,,,,,,,,,,,,,
+5183,"Korea 2000 / East Belt",9001,4737,18251,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5184,"Korea 2000 / East Sea Belt",9001,4737,5049,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,500000,9001,,,,,,,,,,,,,
+5185,"Korea 2000 / West Belt 2010",9001,4737,5101,9807,1,0,4530,8801,38,9102,8802,125,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,,
+5186,"Korea 2000 / Central Belt 2010",9001,4737,5102,9807,1,0,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,,
+5187,"Korea 2000 / East Belt 2010",9001,4737,5103,9807,1,0,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,,
+5188,"Korea 2000 / East Sea Belt 2010",9001,4737,5104,9807,1,0,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,,
+5221,"S-JTSK (Ferro) / Krovak East North",9001,4818,5218,1041,1,0,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,42.3,9110,,,,,,,
+5223,"WGS 84 / Gabon TM",9001,4326,5222,9807,1,0,4499,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+5224,"S-JTSK/05 (Ferro) / Modified Krovak",9001,5229,5219,1042,1,0,6501,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,,
+5225,"S-JTSK/05 (Ferro) / Modified Krovak East North",9001,5229,5220,1043,1,0,4499,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,,
+5234,"Kandawala / Sri Lanka Grid",9001,4244,5231,9807,1,0,4400,8801,7.0001729,9110,8802,80.461816,9110,8805,0.9999238418,9201,8806,200000,9001,8807,200000,9001,,,,,,,,,,,,,
+5235,"SLD99 / Sri Lanka Grid 1999",9001,5233,5232,9807,1,0,4400,8801,7.00016975,9110,8802,80.46181671,9110,8805,0.9999238418,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+5243,"ETRS89 / LCC Germany (E-N)",9001,4258,4838,9802,1,0,4400,8821,51,9102,8822,10.3,9110,8823,48.4,9110,8824,53.4,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+5247,"GDBD2009 / Brunei BRSO",9001,5246,19894,9812,1,0,4400,8806,0,9001,8807,0,9001,8811,4,9110,8812,115,9110,8813,53.185691582,9110,8814,53.07483685,9110,8815,0.99984,9201,,,,,,,
+5253,"TUREF / TM27",9001,5252,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5254,"TUREF / TM30",9001,5252,16370,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5255,"TUREF / TM33",9001,5252,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5256,"TUREF / TM36",9001,5252,16372,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5257,"TUREF / TM39",9001,5252,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5258,"TUREF / TM42",9001,5252,16374,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5259,"TUREF / TM45",9001,5252,16308,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5266,"DRUKREF 03 / Bhutan National Grid",9001,5264,5265,9807,1,0,4400,8801,0,9102,8802,90,9102,8805,1,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+5269,"TUREF / 3-degree Gauss-Kruger zone 9",9001,5252,16269,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+5270,"TUREF / 3-degree Gauss-Kruger zone 10",9001,5252,16270,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+5271,"TUREF / 3-degree Gauss-Kruger zone 11",9001,5252,16271,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+5272,"TUREF / 3-degree Gauss-Kruger zone 12",9001,5252,16272,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+5273,"TUREF / 3-degree Gauss-Kruger zone 13",9001,5252,16273,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+5274,"TUREF / 3-degree Gauss-Kruger zone 14",9001,5252,16274,9807,1,0,4530,8801,0,9102,8802,42,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+5275,"TUREF / 3-degree Gauss-Kruger zone 15",9001,5252,16275,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+5292,"DRUKREF 03 / Bumthang TM",9001,5264,5268,9807,1,0,4400,8801,0,9110,8802,90.44,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5293,"DRUKREF 03 / Chhukha TM",9001,5264,5276,9807,1,0,4400,8801,0,9110,8802,89.33,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5294,"DRUKREF 03 / Dagana TM",9001,5264,5277,9807,1,0,4400,8801,0,9110,8802,89.51,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5295,"DRUKREF 03 / Gasa TM",9001,5264,5278,9807,1,0,4400,8801,0,9110,8802,90.02,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5296,"DRUKREF 03 / Ha TM",9001,5264,5279,9807,1,0,4400,8801,0,9110,8802,90.09,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5297,"DRUKREF 03 / Lhuentse TM",9001,5264,5280,9807,1,0,4400,8801,0,9110,8802,91.08,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5298,"DRUKREF 03 / Mongar TM",9001,5264,5281,9807,1,0,4400,8801,0,9110,8802,91.14,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5299,"DRUKREF 03 / Paro TM",9001,5264,5282,9807,1,0,4400,8801,0,9110,8802,89.21,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5300,"DRUKREF 03 / Pemagatshel TM",9001,5264,5283,9807,1,0,4400,8801,0,9110,8802,91.21,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5301,"DRUKREF 03 / Punakha TM",9001,5264,5313,9807,1,0,4400,8801,0,9110,8802,89.51,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5302,"DRUKREF 03 / Samdrup Jongkhar TM",9001,5264,5285,9807,1,0,4400,8801,0,9110,8802,91.34,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5303,"DRUKREF 03 / Samtse TM",9001,5264,5286,9807,1,0,4400,8801,0,9110,8802,89.04,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5304,"DRUKREF 03 / Sarpang TM",9001,5264,5287,9807,1,0,4400,8801,0,9110,8802,90.16,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5305,"DRUKREF 03 / Thimphu TM",9001,5264,5312,9807,1,0,4400,8801,0,9110,8802,89.33,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5306,"DRUKREF 03 / Trashigang TM",9001,5264,5289,9807,1,0,4400,8801,0,9110,8802,91.45,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5307,"DRUKREF 03 / Trongsa TM",9001,5264,5290,9807,1,0,4400,8801,0,9110,8802,90.3,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5308,"DRUKREF 03 / Tsirang TM",9001,5264,5284,9807,1,0,4400,8801,0,9110,8802,90.1,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5309,"DRUKREF 03 / Wangdue Phodrang TM",9001,5264,5288,9807,1,0,4400,8801,0,9110,8802,90.07,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5310,"DRUKREF 03 / Yangtse TM",9001,5264,5314,9807,1,0,4400,8801,0,9110,8802,91.34,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5311,"DRUKREF 03 / Zhemgang TM",9001,5264,5291,9807,1,0,4400,8801,0,9110,8802,90.52,9110,8805,1,9201,8806,250000,9001,8807,-2500000,9001,,,,,,,,,,,,,
+5316,"ETRS89 / Faroe TM",9001,4258,5315,9807,1,0,4400,8801,0,9102,8802,-7,9102,8805,0.999997,9201,8806,200000,9001,8807,-6000000,9001,,,,,,,,,,,,,
+5320,"NAD83 / Teranet Ontario Lambert",9001,4269,5319,9802,1,0,4499,8821,0,9102,8822,-84,9102,8823,44.3,9110,8824,54.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+5321,"NAD83(CSRS) / Teranet Ontario Lambert",9001,4617,5319,9802,1,0,4499,8821,0,9102,8822,-84,9102,8823,44.3,9110,8824,54.3,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+5325,"ISN2004 / Lambert 2004",9001,5324,5326,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,1700000,9001,8827,300000,9001,,,,,,,,,,
+5329,"Segara (Jakarta) / NEIEZ",9001,4820,5328,9804,1,0,4499,8801,0,9102,8802,3.113221,9110,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+5330,"Batavia (Jakarta) / NEIEZ",9001,4813,5328,9804,1,0,4499,8801,0,9102,8802,3.113221,9110,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+5331,"Makassar (Jakarta) / NEIEZ",9001,4804,5328,9804,1,0,4499,8801,0,9102,8802,3.113221,9110,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+5337,"Aratu / UTM zone 25S",9001,4208,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5343,"POSGAR 2007 / Argentina 1",9001,5340,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+5344,"POSGAR 2007 / Argentina 2",9001,5340,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+5345,"POSGAR 2007 / Argentina 3",9001,5340,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5346,"POSGAR 2007 / Argentina 4",9001,5340,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5347,"POSGAR 2007 / Argentina 5",9001,5340,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5348,"POSGAR 2007 / Argentina 6",9001,5340,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+5349,"POSGAR 2007 / Argentina 7",9001,5340,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+5355,"MARGEN / UTM zone 20S",9001,5354,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5356,"MARGEN / UTM zone 19S",9001,5354,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5357,"MARGEN / UTM zone 21S",9001,5354,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5361,"SIRGAS-Chile / UTM zone 19S",9001,5360,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5362,"SIRGAS-Chile / UTM zone 18S",9001,5360,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5367,"CR05 / CRTM05",9001,5365,5366,9807,1,0,4500,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5382,"SIRGAS-ROU98 / UTM zone 21S",9001,5381,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5383,"SIRGAS-ROU98 / UTM zone 22S",9001,5381,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5387,"Peru96 / UTM zone 18S",9001,5373,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5388,"Peru96 / UTM zone 17S",9001,5373,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5389,"Peru96 / UTM zone 19S",9001,5373,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5396,"SIRGAS 2000 / UTM zone 26S",9001,4674,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5456,"Ocotepeque 1935 / Costa Rica Norte",9001,5451,5390,9801,1,0,4499,8801,10.28,9110,8802,-84.2,9110,8805,0.99995696,9201,8806,500000,9001,8807,271820.522,9001,,,,,,,,,,,,,
+5457,"Ocotepeque 1935 / Costa Rica Sur",9001,5451,5394,9801,1,0,4499,8801,9,9110,8802,-83.4,9110,8805,0.99995696,9201,8806,500000,9001,8807,327987.436,9001,,,,,,,,,,,,,
+5458,"Ocotepeque 1935 / Guatemala Norte",9001,4267,18211,9801,1,1,4499,8801,16.49,9110,8802,-90.2,9110,8805,0.99992226,9201,8806,500000,9001,8807,292209.579,9001,,,,,,,,,,,,,
+5459,"Ocotepeque 1935 / Guatemala Sur",9001,5451,18212,9801,1,0,4499,8801,14.54,9110,8802,-90.2,9110,8805,0.99989906,9201,8806,500000,9001,8807,325992.681,9001,,,,,,,,,,,,,
+5460,"Ocotepeque 1935 / El Salvador Lambert",9001,5451,5399,9801,1,0,4499,8801,13.47,9110,8802,-89,9110,8805,0.99996704,9201,8806,500000,9001,8807,295809.184,9001,,,,,,,,,,,,,
+5461,"Ocotepeque 1935 / Nicaragua Norte",9001,5451,5439,9801,1,0,4499,8801,13.52,9110,8802,-85.3,9110,8805,0.99990314,9201,8806,500000,9001,8807,359891.816,9001,,,,,,,,,,,,,
+5462,"Ocotepeque 1935 / Nicaragua Sur",9001,5451,5444,9801,1,0,4499,8801,11.44,9110,8802,-85.3,9110,8805,0.99992228,9201,8806,500000,9001,8807,288876.327,9001,,,,,,,,,,,,,
+5463,"SAD69 / UTM zone 17N",9001,4618,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5466,"Sibun Gorge 1922 / Colony Grid",9001,5464,5465,9807,1,1,4499,8801,17.0340471,9110,8802,-88.3754687,9110,8805,1,9201,8806,217259.26,9005,8807,445474.83,9005,,,,,,,,,,,,,
+5469,"Panama-Colon 1911 / Panama Lambert",9001,5467,5468,9801,1,0,4499,8801,8.25,9110,8802,-80,9110,8805,0.99989909,9201,8806,500000,9001,8807,294865.303,9001,,,,,,,,,,,,,
+5472,"Panama-Colon 1911 / Panama Polyconic",9037,5467,5471,9818,1,0,1028,8801,8.15,9110,8802,-81,9110,8806,1000000,9037,8807,1092972.1,9037,,,,,,,,,,,,,,,,
+5479,"RSRGD2000 / MSLC2000",9001,4764,5475,9802,1,0,4500,8821,-78,9110,8822,163,9110,8823,-76.4,9110,8824,-79.2,9110,8826,7000000,9001,8827,5000000,9001,,,,,,,,,,
+5480,"RSRGD2000 / BCLC2000",9001,4764,5476,9802,1,0,4500,8821,-74.3,9110,8822,165,9110,8823,-73.4,9110,8824,-75.2,9110,8826,5000000,9001,8827,3000000,9001,,,,,,,,,,
+5481,"RSRGD2000 / PCLC2000",9001,4764,5477,9802,1,0,4500,8821,-71.3,9110,8822,166,9110,8823,-70.4,9110,8824,-72.2,9110,8826,3000000,9001,8827,1000000,9001,,,,,,,,,,
+5482,"RSRGD2000 / RSPS2000",9001,4764,5478,9810,1,0,1044,8801,-90,9102,8802,180,9102,8805,0.994,9201,8806,5000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+5490,"RGAF09 / UTM zone 20N",9001,5489,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5513,"S-JTSK / Krovak",9001,4156,5509,9819,1,0,6501,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110,,,,,,,
+5514,"S-JTSK / Krovak East North",9001,4156,5510,1041,1,0,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110,,,,,,,
+5515,"S-JTSK/05 / Modified Krovak",9001,5228,5511,1042,1,0,6501,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,,
+5516,"S-JTSK/05 / Modified Krovak East North",9001,5228,5512,1043,1,0,4499,1026,0.02946529277,9203,1027,0.02515965696,9203,1028,1.193845912e-07,9203,1029,-4.668270147e-07,9203,1030,9.233980362e-12,9203,1031,1.523735715e-12,9203,1032,1.696780024e-18,9203,,,,,,,
+5518,"CI1971 / Chatham Islands Map Grid",9001,4672,5517,9807,1,0,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,,,,,,,,
+5519,"CI1979 / Chatham Islands Map Grid",9001,4673,5517,9807,1,0,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,,,,,,,,
+5520,"DHDN / 3-degree Gauss-Kruger zone 1",9001,4314,16261,9807,1,0,4530,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+5523,"WGS 84 / Gabon TM 2011",9001,4326,5522,9807,1,0,4499,8801,0,9102,8802,11.3,9110,8805,0.9996,9201,8806,1500000,9001,8807,5500000,9001,,,,,,,,,,,,,
+5530,"SAD69(96) / Brazil Polyconic",9001,5527,19941,9818,1,0,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,,
+5531,"SAD69(96) / UTM zone 21S",9001,5527,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5532,"SAD69(96) / UTM zone 22S",9001,4618,16122,9807,1,1,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5533,"SAD69(96) / UTM zone 23S",9001,5527,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5534,"SAD69(96) / UTM zone 24S",9001,5527,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5535,"SAD69(96) / UTM zone 25S",9001,5527,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5536,"Corrego Alegre 1961 / UTM zone 21S",9001,5524,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5537,"Corrego Alegre 1961 / UTM zone 22S",9001,5524,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5538,"Corrego Alegre 1961 / UTM zone 23S",9001,5524,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5539,"Corrego Alegre 1961 / UTM zone 24S",9001,5524,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5550,"PNG94 / PNGMG94 zone 54",9001,5546,5547,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5551,"PNG94 / PNGMG94 zone 55",9001,5546,5548,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5552,"PNG94 / PNGMG94 zone 56",9001,5546,5549,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5559,"Ocotepeque 1935 / Guatemala Norte",9001,5451,18211,9801,1,0,4499,8801,16.49,9110,8802,-90.2,9110,8805,0.99992226,9201,8806,500000,9001,8807,292209.579,9001,,,,,,,,,,,,,
+5562,"UCS-2000 / Gauss-Kruger zone 4",9001,5561,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5563,"UCS-2000 / Gauss-Kruger zone 5",9001,5561,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5564,"UCS-2000 / Gauss-Kruger zone 6",9001,5561,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+5565,"UCS-2000 / Gauss-Kruger zone 7",9001,5561,16207,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+5566,"UCS-2000 / Gauss-Kruger CM 21E",9001,5561,16304,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5567,"UCS-2000 / Gauss-Kruger CM 27E",9001,5561,16305,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5568,"UCS-2000 / Gauss-Kruger CM 33E",9001,5561,16306,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5569,"UCS-2000 / Gauss-Kruger CM 39E",9001,5561,16307,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5570,"UCS-2000 / 3-degree Gauss-Kruger zone 7",9001,5561,16267,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+5571,"UCS-2000 / 3-degree Gauss-Kruger zone 8",9001,5561,16268,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+5572,"UCS-2000 / 3-degree Gauss-Kruger zone 9",9001,5561,16269,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+5573,"UCS-2000 / 3-degree Gauss-Kruger zone 10",9001,5561,16270,9807,1,1,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+5574,"UCS-2000 / 3-degree Gauss-Kruger zone 11",9001,5561,16271,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+5575,"UCS-2000 / 3-degree Gauss-Kruger zone 12",9001,5561,16272,9807,1,1,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+5576,"UCS-2000 / 3-degree Gauss-Kruger zone 13",9001,5561,16273,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+5577,"UCS-2000 / 3-degree Gauss-Kruger CM 21E",9001,5561,16304,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5578,"UCS-2000 / 3-degree Gauss-Kruger CM 24E",9001,5561,16368,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5579,"UCS-2000 / 3-degree Gauss-Kruger CM 27E",9001,5561,16305,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5580,"UCS-2000 / 3-degree Gauss-Kruger CM 30E",9001,5561,16370,9807,1,1,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5581,"UCS-2000 / 3-degree Gauss-Kruger CM 33E",9001,5561,16306,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5582,"UCS-2000 / 3-degree Gauss-Kruger CM 36E",9001,5561,16372,9807,1,1,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5583,"UCS-2000 / 3-degree Gauss-Kruger CM 39E",9001,5561,16307,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5588,"NAD27 / New Brunswick Stereographic (NAD27)",9002,4267,5587,9809,1,0,1029,8801,46.3,9110,8802,-66.3,9110,8805,0.999912,9201,8806,1000000,9002,8807,1000000,9002,,,,,,,,,,,,,
+5589,"Sibun Gorge 1922 / Colony Grid",9005,5464,5465,9807,1,0,4403,8801,17.0340471,9110,8802,-88.3754687,9110,8805,1,9201,8806,217259.26,9005,8807,445474.83,9005,,,,,,,,,,,,,
+5596,"FEH2010 / Fehmarnbelt TM",9001,5593,5595,9807,1,0,4400,8801,0,9110,8802,11.2,9110,8805,1,9201,8806,1000000,9001,8807,0,9001,,,,,,,,,,,,,
+5623,"NAD27 / Michigan East",9003,4267,12101,9807,1,0,4497,8801,41.3,9110,8802,-83.4,9110,8805,0.999942857,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+5624,"NAD27 / Michigan Old Central",9003,4267,12102,9807,1,0,4497,8801,41.3,9110,8802,-85.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+5625,"NAD27 / Michigan West",9003,4267,12103,9807,1,0,4497,8801,41.3,9110,8802,-88.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+5627,"ED50 / TM 6 NE",9001,4230,16406,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5629,"Moznet / UTM zone 38S",9001,4130,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5631,"Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)",9001,4179,16202,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+5632,"PTRA08 / LCC Europe",9001,5013,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,,
+5633,"PTRA08 / LAEA Europe",9001,5013,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,,
+5634,"REGCAN95 / LCC Europe",9001,4081,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,,
+5635,"REGCAN95 / LAEA Europe",9001,4081,19986,9820,1,0,4500,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,,
+5636,"TUREF / LAEA Europe",9001,5252,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,,
+5637,"TUREF / LCC Europe",9001,5252,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,,
+5638,"ISN2004 / LAEA Europe",9001,5324,19986,9820,1,0,4532,8801,52,9102,8802,10,9102,8806,4321000,9001,8807,3210000,9001,,,,,,,,,,,,,,,,
+5639,"ISN2004 / LCC Europe",9001,5324,19985,9802,1,0,4500,8821,52,9102,8822,10,9102,8823,35,9102,8824,65,9102,8826,4000000,9001,8827,2800000,9001,,,,,,,,,,
+5641,"SIRGAS 2000 / Brazil Mercator",9001,4674,5640,9805,1,0,4499,8802,-43,9102,8806,5000000,9001,8807,10000000,9001,8823,-2,9102,,,,,,,,,,,,,,,,
+5643,"ED50 / SPBA LCC",9001,4230,5642,9802,1,0,4400,8821,48,9102,8822,10,9102,8823,52.4,9110,8824,54.2,9110,8826,815000,9001,8827,0,9001,,,,,,,,,,
+5644,"RGR92 / UTM zone 39S",9001,4627,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5646,"NAD83 / Vermont (ftUS)",9003,4269,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+5649,"ETRS89 / UTM zone 31N (zE-N)",9001,4258,5647,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+5650,"ETRS89 / UTM zone 33N (zE-N)",9001,4258,5648,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+5651,"ETRS89 / UTM zone 31N (N-zE)",9001,4258,5647,9807,1,0,4500,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+5652,"ETRS89 / UTM zone 32N (N-zE)",9001,4258,4648,9807,1,0,4500,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+5653,"ETRS89 / UTM zone 33N (N-zE)",9001,4258,5648,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,33500000,9001,8807,0,9001,,,,,,,,,,,,,
+5654,"NAD83(HARN) / Vermont (ftUS)",9003,4152,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+5655,"NAD83(NSRS2007) / Vermont (ftUS)",9003,4759,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+5659,"Monte Mario / TM Emilia-Romagna",9001,4265,5658,9807,1,0,4499,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500053,9001,8807,-3999820,9001,,,,,,,,,,,,,
+5663,"Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)",9001,4179,16203,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5664,"Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)",9001,4178,16202,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+5665,"Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)",9001,4178,16203,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5666,"PD/83 / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4746,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5667,"PD/83 / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4746,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5668,"RD/83 / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4745,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5669,"RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4745,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5670,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4179,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5671,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4179,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5672,"Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4179,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5673,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4178,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5674,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4178,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5675,"Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4178,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5676,"DHDN / 3-degree Gauss-Kruger zone 2 (E-N)",9001,4314,16262,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+5677,"DHDN / 3-degree Gauss-Kruger zone 3 (E-N)",9001,4314,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5678,"DHDN / 3-degree Gauss-Kruger zone 4 (E-N)",9001,4314,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5679,"DHDN / 3-degree Gauss-Kruger zone 5 (E-N)",9001,4314,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5680,"DHDN / 3-degree Gauss-Kruger zone 1 (E-N)",9001,4314,16261,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+5682,"DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)",9001,5681,16262,9807,1,0,4400,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+5683,"DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)",9001,5681,16263,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+5684,"DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)",9001,5681,16264,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+5685,"DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)",9001,5681,16265,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+5700,"NZGD2000 / UTM zone 1S",9001,4167,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5819,EPSG topocentric example A,9001,4979,15594,9837,1,0,4461,8834,55,9102,8835,5,9102,8836,0,9001,,,,,,,,,,,,,,,,,,,
+5820,EPSG topocentric example B,9001,4978,15595,9836,1,0,4461,8837,3771793.97,9001,8838,140253.34,9001,8839,5124304.35,9001,,,,,,,,,,,,,,,,,,,
+5821,EPSG vertical perspective example,9001,5819,19850,9838,1,0,4461,8834,55,9102,8835,5,9102,8836,200,9001,8840,5900,9036,,,,,,,,,,,,,,,,
+5825,"AGD66 / ACT Standard Grid",9001,4202,5824,9807,1,0,4400,8801,-35.19038506,9110,8802,149.003346139,9110,8805,1.000086,9201,8806,200000,9001,8807,600000,9001,,,,,,,,,,,,,
+5836,"Yemen NGN96 / UTM zone 37N",9001,4163,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5837,"Yemen NGN96 / UTM zone 40N",9001,4163,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+5839,"Peru96 / UTM zone 17S",9001,5373,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5842,"WGS 84 / TM 12 SE",9001,4326,16612,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5844,"RGRDC 2005 / Congo TM zone 30",9001,4046,17430,9807,1,0,4499,8801,0,9102,8802,30,9102,8805,0.9999,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5858,"SAD69(96) / UTM zone 22S",9001,5527,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5875,"SAD69(96) / UTM zone 18S",9001,5527,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5876,"SAD69(96) / UTM zone 19S",9001,5527,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5877,"SAD69(96) / UTM zone 20S",9001,5527,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5879,"Cadastre 1997 / UTM zone 38S",9001,4475,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+5880,"SIRGAS 2000 / Brazil Polyconic",9001,4674,19941,9818,1,0,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,,
+5887,"TGD2005 / Tonga Map Grid",9001,5886,5883,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,1500000,9001,8807,5000000,9001,,,,,,,,,,,,,
+5890,JAXA Snow Depth Polar Stereographic North,9001,4054,5889,9829,1,0,1035,8806,0,9001,8807,0,9001,8832,70,9102,8833,90,9102,,,,,,,,,,,,,,,,
+5921,"WGS 84 / EPSG Arctic Regional zone A1",9001,4326,5906,9802,1,0,4400,8821,81.19020136,9110,8822,-111,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5922,"WGS 84 / EPSG Arctic Regional zone A2",9001,4326,5907,9802,1,0,4400,8821,81.19020136,9110,8822,-39,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5923,"WGS 84 / EPSG Arctic Regional zone A3",9001,4326,5908,9802,1,0,4400,8821,81.19020136,9110,8822,33,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5924,"WGS 84 / EPSG Arctic Regional zone A4",9001,4326,5909,9802,1,0,4400,8821,81.19020136,9110,8822,105,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5925,"WGS 84 / EPSG Arctic Regional zone A5",9001,4326,5910,9802,1,0,4400,8821,81.19020136,9110,8822,177,9102,8823,85,9102,8824,77,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5926,"WGS 84 / EPSG Arctic Regional zone B1",9001,4326,5911,9802,1,0,4400,8821,73.09206671,9110,8822,-111,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5927,"WGS 84 / EPSG Arctic Regional zone B2",9001,4326,5912,9802,1,0,4400,8821,73.09206671,9110,8822,-39,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5928,"WGS 84 / EPSG Arctic Regional zone B3",9001,4326,5913,9802,1,0,4400,8821,73.09206671,9110,8822,33,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5929,"WGS 84 / EPSG Arctic Regional zone B4",9001,4326,5914,9802,1,0,4400,8821,73.09206671,9110,8822,105,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5930,"WGS 84 / EPSG Arctic Regional zone B5",9001,4326,5915,9802,1,0,4400,8821,73.09206671,9110,8822,177,9102,8823,77,9102,8824,69,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5931,"WGS 84 / EPSG Arctic Regional zone C1",9001,4326,5916,9802,1,0,4400,8821,65.06045752,9110,8822,-111,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5932,"WGS 84 / EPSG Arctic Regional zone C2",9001,4326,5917,9802,1,0,4400,8821,65.06045752,9110,8822,-39,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5933,"WGS 84 / EPSG Arctic Regional zone C3",9001,4326,5918,9802,1,0,4400,8821,65.06045752,9110,8822,33,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5934,"WGS 84 / EPSG Arctic Regional zone C4",9001,4326,5919,9802,1,0,4400,8821,65.06045752,9110,8822,105,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5935,"WGS 84 / EPSG Arctic Regional zone C5",9001,4326,5920,9802,1,0,4400,8821,65.06045752,9110,8822,177,9102,8823,69,9102,8824,61,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+5936,"WGS 84 / EPSG Alaska Polar Stereographic",9001,4326,5901,9810,1,0,4467,8801,90,9102,8802,-150,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5937,"WGS 84 / EPSG Canada Polar Stereographic",9001,4326,5902,9810,1,0,4466,8801,90,9102,8802,-100,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5938,"WGS 84 / EPSG Greenland Polar Stereographic",9001,4326,5903,9810,1,0,1036,8801,90,9102,8802,-33,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5939,"WGS 84 / EPSG Norway Polar Stereographic",9001,4326,5904,9810,1,0,1037,8801,90,9102,8802,18,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+5940,"WGS 84 / EPSG Russia Polar Stereographic",9001,4326,5905,9810,1,0,1038,8801,90,9102,8802,105,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+6050,"GR96 / EPSG Arctic zone 1-25",9001,4747,5979,9802,1,0,4400,8821,85.2613626,9110,8822,-30,9110,8823,87,9110,8824,83.4,9110,8826,25500000,9001,8827,1500000,9001,,,,,,,,,,
+6051,"GR96 / EPSG Arctic zone 2-18",9001,4747,5987,9802,1,0,4400,8821,82.03303296,9110,8822,-52,9110,8823,83.4,9110,8824,80.2,9110,8826,18500000,9001,8827,2500000,9001,,,,,,,,,,
+6052,"GR96 / EPSG Arctic zone 2-20",9001,4747,5988,9802,1,0,4400,8821,82.03303296,9110,8822,-12,9110,8823,83.4,9110,8824,80.2,9110,8826,20500000,9001,8827,2500000,9001,,,,,,,,,,
+6053,"GR96 / EPSG Arctic zone 3-29",9001,4747,6002,9802,1,0,4400,8821,78.42264151,9110,8822,-69,9110,8823,80.2,9110,8824,77,9110,8826,29500000,9001,8827,3500000,9001,,,,,,,,,,
+6054,"GR96 / EPSG Arctic zone 3-31",9001,4747,6003,9802,1,0,4400,8821,78.42264151,9110,8822,-39,9110,8823,80.2,9110,8824,77,9110,8826,31500000,9001,8827,3500000,9001,,,,,,,,,,
+6055,"GR96 / EPSG Arctic zone 3-33",9001,4747,6004,9802,1,0,4400,8821,78.42264151,9110,8822,-10,9110,8823,80.2,9110,8824,77,9110,8826,33500000,9001,8827,3500000,9001,,,,,,,,,,
+6056,"GR96 / EPSG Arctic zone 4-20",9001,4747,6009,9802,1,0,4400,8821,75.21518519,9110,8822,-64,9110,8823,77,9110,8824,73.4,9110,8826,20500000,9001,8827,4500000,9001,,,,,,,,,,
+6057,"GR96 / EPSG Arctic zone 4-22",9001,4747,6010,9802,1,0,4400,8821,75.21518519,9110,8822,-39,9110,8823,77,9110,8824,73.4,9110,8826,22500000,9001,8827,4500000,9001,,,,,,,,,,
+6058,"GR96 / EPSG Arctic zone 4-24",9001,4747,6011,9802,1,0,4400,8821,75.21518519,9110,8822,-14,9110,8823,77,9110,8824,73.4,9110,8826,24500000,9001,8827,4500000,9001,,,,,,,,,,
+6059,"GR96 / EPSG Arctic zone 5-41",9001,4747,6035,9802,1,0,4400,8821,72.01300331,9110,8822,-62,9110,8823,73.4,9110,8824,70.2,9110,8826,41500000,9001,8827,5500000,9001,,,,,,,,,,
+6060,"GR96 / EPSG Arctic zone 5-43",9001,4747,6036,9802,1,0,4400,8821,72.01300331,9110,8822,-42,9110,8823,73.4,9110,8824,70.2,9110,8826,43500000,9001,8827,5500000,9001,,,,,,,,,,
+6061,"GR96 / EPSG Arctic zone 5-45",9001,4747,6037,9802,1,0,4400,8821,72.01300331,9110,8822,-22,9110,8823,73.4,9110,8824,70.2,9110,8826,45500000,9001,8827,5500000,9001,,,,,,,,,,
+6062,"GR96 / EPSG Arctic zone 6-26",9001,4747,6045,9802,1,0,4400,8821,68.4114912,9110,8822,-56,9110,8823,70.2,9110,8824,67,9110,8826,26500000,9001,8827,6500000,9001,,,,,,,,,,
+6063,"GR96 / EPSG Arctic zone 6-28",9001,4747,6046,9802,1,0,4400,8821,68.4114912,9110,8822,-38,9110,8823,70.2,9110,8824,67,9110,8826,28500000,9001,8827,6500000,9001,,,,,,,,,,
+6064,"GR96 / EPSG Arctic zone 6-30",9001,4747,6047,9802,1,0,4400,8821,68.4114912,9110,8822,-20,9110,8823,70.2,9110,8824,67,9110,8826,30500000,9001,8827,6500000,9001,,,,,,,,,,
+6065,"GR96 / EPSG Arctic zone 7-11",9001,4747,6048,9802,1,0,4400,8821,65.21037415,9110,8822,-51,9110,8823,67,9110,8824,63.4,9110,8826,11500000,9001,8827,7500000,9001,,,,,,,,,,
+6066,"GR96 / EPSG Arctic zone 7-13",9001,4747,6049,9802,1,0,4400,8821,65.21037415,9110,8822,-34,9110,8823,67,9110,8824,63.4,9110,8826,13500000,9001,8827,7500000,9001,,,,,,,,,,
+6067,"GR96 / EPSG Arctic zone 8-20",9001,4747,5943,9802,1,0,4400,8821,62.00551048,9110,8822,-52,9110,8823,63.4,9110,8824,60.2,9110,8826,20500000,9001,8827,8500000,9001,,,,,,,,,,
+6068,"GR96 / EPSG Arctic zone 8-22",9001,4747,5944,9802,1,0,4400,8821,62.00551048,9110,8822,-37,9110,8823,63.4,9110,8824,60.2,9110,8826,22500000,9001,8827,8500000,9001,,,,,,,,,,
+6069,"ETRS89 / EPSG Arctic zone 2-22",9001,4258,5989,9802,1,0,4400,8821,82.03303296,9110,8822,16,9110,8823,83.4,9110,8824,80.2,9110,8826,22500000,9001,8827,2500000,9001,,,,,,,,,,
+6070,"ETRS89 / EPSG Arctic zone 3-11",9001,4258,5993,9802,1,0,4400,8821,78.42264151,9110,8822,21,9110,8823,80.2,9110,8824,77,9110,8826,11500000,9001,8827,3500000,9001,,,,,,,,,,
+6071,"ETRS89 / EPSG Arctic zone 4-26",9001,4258,6012,9802,1,0,4400,8821,75.21518519,9110,8822,10,9110,8823,77,9110,8824,73.4,9110,8826,26500000,9001,8827,4500000,9001,,,,,,,,,,
+6072,"ETRS89 / EPSG Arctic zone 4-28",9001,4258,6013,9802,1,0,4400,8821,75.21518519,9110,8822,34,9110,8823,77,9110,8824,73.4,9110,8826,28500000,9001,8827,4500000,9001,,,,,,,,,,
+6073,"ETRS89 / EPSG Arctic zone 5-11",9001,4258,6020,9802,1,0,4400,8821,72.01300331,9110,8822,14,9110,8823,73.4,9110,8824,70.2,9110,8826,11500000,9001,8827,5500000,9001,,,,,,,,,,
+6074,"ETRS89 / EPSG Arctic zone 5-13",9001,4258,6021,9802,1,0,4400,8821,72.01300331,9110,8822,34,9110,8823,73.4,9110,8824,70.2,9110,8826,13500000,9001,8827,5500000,9001,,,,,,,,,,
+6075,"WGS 84 / EPSG Arctic zone 2-24",9001,4326,5990,9802,1,0,4400,8821,82.03303296,9110,8822,53,9110,8823,83.4,9110,8824,80.2,9110,8826,24500000,9001,8827,2500000,9001,,,,,,,,,,
+6076,"WGS 84 / EPSG Arctic zone 2-26",9001,4326,5991,9802,1,0,4400,8821,82.03303296,9110,8822,93,9110,8823,83.4,9110,8824,80.2,9110,8826,26500000,9001,8827,2500000,9001,,,,,,,,,,
+6077,"WGS 84 / EPSG Arctic zone 3-13",9001,4326,5994,9802,1,0,4400,8821,78.42264151,9110,8822,52,9110,8823,80.2,9110,8824,77,9110,8826,13500000,9001,8827,3500000,9001,,,,,,,,,,
+6078,"WGS 84 / EPSG Arctic zone 3-15",9001,4326,5995,9802,1,0,4400,8821,78.42264151,9110,8822,83,9110,8823,80.2,9110,8824,77,9110,8826,15500000,9001,8827,3500000,9001,,,,,,,,,,
+6079,"WGS 84 / EPSG Arctic zone 3-17",9001,4326,5996,9802,1,0,4400,8821,78.42264151,9110,8822,114,9110,8823,80.2,9110,8824,77,9110,8826,17500000,9001,8827,3500000,9001,,,,,,,,,,
+6080,"WGS 84 / EPSG Arctic zone 3-19",9001,4326,5997,9802,1,0,4400,8821,78.42264151,9110,8822,145,9110,8823,80.2,9110,8824,77,9110,8826,19500000,9001,8827,3500000,9001,,,,,,,,,,
+6081,"WGS 84 / EPSG Arctic zone 4-30",9001,4326,6014,9802,1,0,4400,8821,75.21518519,9110,8822,58,9110,8823,77,9110,8824,73.4,9110,8826,30500000,9001,8827,4500000,9001,,,,,,,,,,
+6082,"WGS 84 / EPSG Arctic zone 4-32",9001,4326,6015,9802,1,0,4400,8821,75.21518519,9110,8822,82,9110,8823,77,9110,8824,73.4,9110,8826,32500000,9001,8827,4500000,9001,,,,,,,,,,
+6083,"WGS 84 / EPSG Arctic zone 4-34",9001,4326,6016,9802,1,0,4400,8821,75.21518519,9110,8822,106,9110,8823,77,9110,8824,73.4,9110,8826,34500000,9001,8827,4500000,9001,,,,,,,,,,
+6084,"WGS 84 / EPSG Arctic zone 4-36",9001,4326,6017,9802,1,0,4400,8821,75.21518519,9110,8822,130,9110,8823,77,9110,8824,73.4,9110,8826,36500000,9001,8827,4500000,9001,,,,,,,,,,
+6085,"WGS 84 / EPSG Arctic zone 4-38",9001,4326,6018,9802,1,0,4400,8821,75.21518519,9110,8822,154,9110,8823,77,9110,8824,73.4,9110,8826,38500000,9001,8827,4500000,9001,,,,,,,,,,
+6086,"WGS 84 / EPSG Arctic zone 4-40",9001,4326,6019,9802,1,0,4400,8821,75.21518519,9110,8822,179,9110,8823,77,9110,8824,73.4,9110,8826,40500000,9001,8827,4500000,9001,,,,,,,,,,
+6087,"WGS 84 / EPSG Arctic zone 5-15",9001,4326,6022,9802,1,0,4400,8821,72.01300331,9110,8822,54,9110,8823,73.4,9110,8824,70.2,9110,8826,15500000,9001,8827,5500000,9001,,,,,,,,,,
+6088,"WGS 84 / EPSG Arctic zone 5-17",9001,4326,6023,9802,1,0,4400,8821,72.01300331,9110,8822,74,9110,8823,73.4,9110,8824,70.2,9110,8826,17500000,9001,8827,5500000,9001,,,,,,,,,,
+6089,"WGS 84 / EPSG Arctic zone 5-19",9001,4326,6024,9802,1,0,4400,8821,72.01300331,9110,8822,95,9110,8823,73.4,9110,8824,70.2,9110,8826,19500000,9001,8827,5500000,9001,,,,,,,,,,
+6090,"WGS 84 / EPSG Arctic zone 5-21",9001,4326,6025,9802,1,0,4400,8821,72.01300331,9110,8822,116,9110,8823,73.4,9110,8824,70.2,9110,8826,21500000,9001,8827,5500000,9001,,,,,,,,,,
+6091,"WGS 84 / EPSG Arctic zone 5-23",9001,4326,6026,9802,1,0,4400,8821,72.01300331,9110,8822,137,9110,8823,73.4,9110,8824,70.2,9110,8826,23500000,9001,8827,5500000,9001,,,,,,,,,,
+6092,"WGS 84 / EPSG Arctic zone 5-25",9001,4326,6027,9802,1,0,4400,8821,72.01300331,9110,8822,158,9110,8823,73.4,9110,8824,70.2,9110,8826,25500000,9001,8827,5500000,9001,,,,,,,,,,
+6093,"WGS 84 / EPSG Arctic zone 5-27",9001,4326,6028,9802,1,0,4400,8821,72.01300331,9110,8822,179,9110,8823,73.4,9110,8824,70.2,9110,8826,27500000,9001,8827,5500000,9001,,,,,,,,,,
+6094,"NAD83(NSRS2007) / EPSG Arctic zone 5-29",9001,4759,6029,9802,1,0,4400,8821,72.01300331,9110,8822,-163,9110,8823,73.4,9110,8824,70.2,9110,8826,29500000,9001,8827,5500000,9001,,,,,,,,,,
+6095,"NAD83(NSRS2007) / EPSG Arctic zone 5-31",9001,4759,6030,9802,1,0,4400,8821,72.01300331,9110,8822,-147,9110,8823,73.4,9110,8824,70.2,9110,8826,31500000,9001,8827,5500000,9001,,,,,,,,,,
+6096,"NAD83(NSRS2007) / EPSG Arctic zone 6-14",9001,4759,6039,9802,1,0,4400,8821,68.4114912,9110,8822,-165,9110,8823,70.2,9110,8824,67,9110,8826,14500000,9001,8827,6500000,9001,,,,,,,,,,
+6097,"NAD83(NSRS2007) / EPSG Arctic zone 6-16",9001,4759,6040,9802,1,0,4400,8821,68.4114912,9110,8822,-147,9110,8823,70.2,9110,8824,67,9110,8826,16500000,9001,8827,6500000,9001,,,,,,,,,,
+6098,"NAD83(CSRS) / EPSG Arctic zone 1-23",9001,4617,5978,9802,1,0,4400,8821,85.2613626,9110,8822,-90,9110,8823,87,9110,8824,83.4,9110,8826,23500000,9001,8827,1500000,9001,,,,,,,,,,
+6099,"NAD83(CSRS) / EPSG Arctic zone 2-14",9001,4617,5985,9802,1,0,4400,8821,82.03303296,9110,8822,-115,9110,8823,83.4,9110,8824,80.2,9110,8826,14500000,9001,8827,2500000,9001,,,,,,,,,,
+6100,"NAD83(CSRS) / EPSG Arctic zone 2-16",9001,4617,5986,9802,1,0,4400,8821,82.03303296,9110,8822,-75,9110,8823,83.4,9110,8824,80.2,9110,8826,16500000,9001,8827,2500000,9001,,,,,,,,,,
+6101,"NAD83(CSRS) / EPSG Arctic zone 3-25",9001,4617,6000,9802,1,0,4400,8821,78.42264151,9110,8822,-129,9110,8823,80.2,9110,8824,77,9110,8826,25500000,9001,8827,3500000,9001,,,,,,,,,,
+6102,"NAD83(CSRS) / EPSG Arctic zone 3-27",9001,4617,6001,9802,1,0,4400,8821,78.42264151,9110,8822,-99,9110,8823,80.2,9110,8824,77,9110,8826,27500000,9001,8827,3500000,9001,,,,,,,,,,
+6103,"NAD83(CSRS) / EPSG Arctic zone 3-29",9001,4617,6002,9802,1,0,4400,8821,78.42264151,9110,8822,-69,9110,8823,80.2,9110,8824,77,9110,8826,29500000,9001,8827,3500000,9001,,,,,,,,,,
+6104,"NAD83(CSRS) / EPSG Arctic zone 4-14",9001,4617,6006,9802,1,0,4400,8821,75.21518519,9110,8822,-129,9110,8823,77,9110,8824,73.4,9110,8826,14500000,9001,8827,4500000,9001,,,,,,,,,,
+6105,"NAD83(CSRS) / EPSG Arctic zone 4-16",9001,4617,6007,9802,1,0,4400,8821,75.21518519,9110,8822,-104,9110,8823,77,9110,8824,73.4,9110,8826,16500000,9001,8827,4500000,9001,,,,,,,,,,
+6106,"NAD83(CSRS) / EPSG Arctic zone 4-18",9001,4617,6008,9802,1,0,4400,8821,75.21518519,9110,8822,-79,9110,8823,77,9110,8824,73.4,9110,8826,18500000,9001,8827,4500000,9001,,,,,,,,,,
+6107,"NAD83(CSRS) / EPSG Arctic zone 5-33",9001,4617,6031,9802,1,0,4400,8821,72.01300331,9110,8822,-131,9110,8823,73.4,9110,8824,70.2,9110,8826,33500000,9001,8827,5500000,9001,,,,,,,,,,
+6108,"NAD83(CSRS) / EPSG Arctic zone 5-35",9001,4617,6032,9802,1,0,4400,8821,72.01300331,9110,8822,-111,9110,8823,73.4,9110,8824,70.2,9110,8826,35500000,9001,8827,5500000,9001,,,,,,,,,,
+6109,"NAD83(CSRS) / EPSG Arctic zone 5-37",9001,4617,6033,9802,1,0,4400,8821,72.01300331,9110,8822,-91,9110,8823,73.4,9110,8824,70.2,9110,8826,37500000,9001,8827,5500000,9001,,,,,,,,,,
+6110,"NAD83(CSRS) / EPSG Arctic zone 5-39",9001,4617,6034,9802,1,0,4400,8821,72.01300331,9110,8822,-71,9110,8823,73.4,9110,8824,70.2,9110,8826,39500000,9001,8827,5500000,9001,,,,,,,,,,
+6111,"NAD83(CSRS) / EPSG Arctic zone 6-18",9001,4617,6041,9802,1,0,4400,8821,68.4114912,9110,8822,-132,9110,8823,70.2,9110,8824,67,9110,8826,18500000,9001,8827,6500000,9001,,,,,,,,,,
+6112,"NAD83(CSRS) / EPSG Arctic zone 6-20",9001,4617,6042,9802,1,0,4400,8821,68.4114912,9110,8822,-113,9110,8823,70.2,9110,8824,67,9110,8826,20500000,9001,8827,6500000,9001,,,,,,,,,,
+6113,"NAD83(CSRS) / EPSG Arctic zone 6-22",9001,4617,6043,9802,1,0,4400,8821,68.4114912,9110,8822,-94,9110,8823,70.2,9110,8824,67,9110,8826,22500000,9001,8827,6500000,9001,,,,,,,,,,
+6114,"NAD83(CSRS) / EPSG Arctic zone 6-24",9001,4617,6044,9802,1,0,4400,8821,68.4114912,9110,8822,-75,9110,8823,70.2,9110,8824,67,9110,8826,24500000,9001,8827,6500000,9001,,,,,,,,,,
+6115,"WGS 84 / EPSG Arctic zone 1-27",9001,4326,5980,9802,1,0,4400,8821,85.2613626,9110,8822,30,9110,8823,87,9110,8824,83.4,9110,8826,27500000,9001,8827,1500000,9001,,,,,,,,,,
+6116,"WGS 84 / EPSG Arctic zone 1-29",9001,4326,5981,9802,1,0,4400,8821,85.2613626,9110,8822,90,9110,8823,87,9110,8824,83.4,9110,8826,29500000,9001,8827,1500000,9001,,,,,,,,,,
+6117,"WGS 84 / EPSG Arctic zone 1-31",9001,4326,5982,9802,1,0,4400,8821,85.2613626,9110,8822,150,9110,8823,87,9110,8824,83.4,9110,8826,31500000,9001,8827,1500000,9001,,,,,,,,,,
+6118,"WGS 84 / EPSG Arctic zone 1-21",9001,4326,5977,9802,1,0,4400,8821,85.2613626,9110,8822,-150,9110,8823,87,9110,8824,83.4,9110,8826,21500000,9001,8827,1500000,9001,,,,,,,,,,
+6119,"WGS 84 / EPSG Arctic zone 2-28",9001,4326,5992,9802,1,0,4400,8821,82.03303296,9110,8822,133,9110,8823,83.4,9110,8824,80.2,9110,8826,28500000,9001,8827,2500000,9001,,,,,,,,,,
+6120,"WGS 84 / EPSG Arctic zone 2-10",9001,4326,5983,9802,1,0,4400,8821,82.03303296,9110,8822,166,9110,8823,83.4,9110,8824,80.2,9110,8826,10500000,9001,8827,2500000,9001,,,,,,,,,,
+6121,"WGS 84 / EPSG Arctic zone 2-12",9001,4326,5984,9802,1,0,4400,8821,82.03303296,9110,8822,-154,9110,8823,83.4,9110,8824,80.2,9110,8826,12500000,9001,8827,2500000,9001,,,,,,,,,,
+6122,"WGS 84 / EPSG Arctic zone 3-21",9001,4326,5998,9802,1,0,4400,8821,78.42264151,9110,8822,176,9110,8823,80.2,9110,8824,77,9110,8826,21500000,9001,8827,3500000,9001,,,,,,,,,,
+6123,"WGS 84 / EPSG Arctic zone 3-23",9001,4326,5999,9802,1,0,4400,8821,78.42264151,9110,8822,-153,9110,8823,80.2,9110,8824,77,9110,8826,23500000,9001,8827,3500000,9001,,,,,,,,,,
+6124,"WGS 84 / EPSG Arctic zone 4-12",9001,4326,6005,9802,1,0,4400,8821,75.21518519,9110,8822,-155,9110,8823,77,9110,8824,73.4,9110,8826,12500000,9001,8827,4500000,9001,,,,,,,,,,
+6125,"ETRS89 / EPSG Arctic zone 5-47",9001,4258,6038,9802,1,0,4400,8821,72.01300331,9110,8822,-5,9110,8823,73.4,9110,8824,70.2,9110,8826,47500000,9001,8827,5500000,9001,,,,,,,,,,
+6128,Grand Cayman National Grid 1959,9002,4723,6127,9807,1,0,1039,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640419.9475,9002,8807,0,9002,,,,,,,,,,,,,
+6129,Sister Islands National Grid 1961,9002,4726,6127,9807,1,0,1039,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640419.9475,9002,8807,0,9002,,,,,,,,,,,,,
+6141,Cayman Islands National Grid 2011,9002,6135,6126,9802,1,1,1039,8821,19.2,9110,8822,80.34,9110,8823,19.2,9110,8824,19.42,9110,8826,2950000,9002,8827,1900000,9002,,,,,,,,,,
+6200,"NAD27 / Michigan North",9003,4267,6197,1051,1,1,4497,1038,1.0000382,9201,8821,44.87,9110,8822,-87,9110,8823,45.29,9110,8824,47.05,9110,8826,2000000,9003,8827,0,9003,,,,,,,
+6201,"NAD27 / Michigan Central",9003,4267,6198,1051,1,0,4497,1038,1.0000382,9201,8821,43.19,9110,8822,-84.2,9110,8823,44.11,9110,8824,45.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,
+6202,"NAD27 / Michigan South",9003,4267,6199,1051,1,0,4497,1038,1.0000382,9201,8821,41.3,9110,8822,-84.2,9110,8823,42.06,9110,8824,43.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,
+6204,Macedonia State Coordinate System,9001,3906,6203,9807,1,0,4498,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6210,"SIRGAS 2000 / UTM zone 23N",9001,4674,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6211,"SIRGAS 2000 / UTM zone 24N",9001,4674,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6244,"MAGNA-SIRGAS / Arauca urban grid",9001,4686,6212,1052,1,0,4500,1039,100,9001,8801,7.051538301,9110,8802,-70.452991476,9110,8806,1035263.443,9001,8807,1275526.621,9001,,,,,,,,,,,,,
+6245,"MAGNA-SIRGAS / Armenia urban grid",9001,4686,6213,1052,1,0,4500,1039,1470,9001,8801,4.315637,9110,8802,-75.4024561,9110,8806,1155824.666,9001,8807,993087.465,9001,,,,,,,,,,,,,
+6246,"MAGNA-SIRGAS / Barranquilla urban grid",9001,4686,6214,1052,1,0,4500,1039,100,9001,8801,10.55234591,9110,8802,-74.50035928,9110,8806,917264.406,9001,8807,1699839.935,9001,,,,,,,,,,,,,
+6247,"MAGNA-SIRGAS / Bogota urban grid",9001,4686,6215,1052,1,0,4500,1039,2550,9001,8801,4.404975,9110,8802,-74.084773,9110,8806,92334.879,9001,8807,109320.965,9001,,,,,,,,,,,,,
+6248,"MAGNA-SIRGAS / Bucaramanga urban grid",9001,4686,6216,1052,1,0,4500,1039,931,9001,8801,7.044399371,9110,8802,-73.11504356,9110,8806,1097241.305,9001,8807,1274642.278,9001,,,,,,,,,,,,,
+6249,"MAGNA-SIRGAS / Cali urban grid",9001,4686,6217,1052,1,0,4500,1039,1000,9001,8801,3.263078,9110,8802,-76.3114025,9110,8806,1061900.18,9001,8807,872364.63,9001,,,,,,,,,,,,,
+6250,"MAGNA-SIRGAS / Cartagena urban grid",9001,4686,6218,1052,1,0,4500,1039,0,9001,8801,10.2349371,9110,8802,-75.3040345,9110,8806,842981.41,9001,8807,1641887.09,9001,,,,,,,,,,,,,
+6251,"MAGNA-SIRGAS / Cucuta urban grid",9001,4686,6219,1052,1,0,4500,1039,308,9001,8801,7.532017225,9110,8802,-72.301033542,9110,8806,842805.406,9001,8807,1364404.57,9001,,,,,,,,,,,,,
+6252,"MAGNA-SIRGAS / Florencia urban grid",9001,4686,6220,1052,1,0,4500,1039,300,9001,8801,1.371564426,9110,8802,-75.370882337,9110,8806,1162300.348,9001,8807,671068.716,9001,,,,,,,,,,,,,
+6253,"MAGNA-SIRGAS / Ibague urban grid",9001,4686,6221,1052,1,0,4500,1039,1100,9001,8801,4.250988618,9110,8802,-75.104773336,9110,8806,877634.33,9001,8807,980541.348,9001,,,,,,,,,,,,,
+6254,"MAGNA-SIRGAS / Inirida urban grid",9001,4686,6222,1052,1,0,4500,1039,96,9001,8801,3.504357746,9110,8802,-67.541883552,9110,8806,1019177.687,9001,8807,491791.326,9001,,,,,,,,,,,,,
+6255,"MAGNA-SIRGAS / Leticia urban grid",9001,4686,6223,1052,1,0,4500,1039,89.7,9001,8801,-4.115166257,9110,8802,-69.563411981,9110,8806,25978.217,9001,8807,27501.365,9001,,,,,,,,,,,,,
+6256,"MAGNA-SIRGAS / Manizales urban grid",9001,4686,6224,1052,1,0,4500,1039,2100,9001,8801,5.0405354,9110,8802,-75.3039941,9110,8806,1173727.04,9001,8807,1052391.13,9001,,,,,,,,,,,,,
+6257,"MAGNA-SIRGAS / Medellin urban grid",9001,4686,6225,1052,1,0,4500,1039,1510,9001,8801,6.1345152,9110,8802,-75.3353593,9110,8806,835378.647,9001,8807,1180816.875,9001,,,,,,,,,,,,,
+6258,"MAGNA-SIRGAS / Mitu urban grid",9001,4686,6226,1052,1,0,4500,1039,170,9001,8801,1.145988972,9110,8802,-70.140766196,9110,8806,1093717.398,9001,8807,629997.236,9001,,,,,,,,,,,,,
+6259,"MAGNA-SIRGAS / Mocoa urban grid",9001,4686,6227,1052,1,0,4500,1039,655.2,9001,8801,1.082408409,9110,8802,-76.390367639,9110,8806,1047467.388,9001,8807,617828.474,9001,,,,,,,,,,,,,
+6260,"MAGNA-SIRGAS / Monteria urban grid",9001,4686,6228,1052,1,0,4500,1039,15,9001,8801,8.462310872,9110,8802,-75.524639199,9110,8806,1131814.934,9001,8807,1462131.119,9001,,,,,,,,,,,,,
+6261,"MAGNA-SIRGAS / Neiva urban grid",9001,4686,6229,1052,1,0,4500,1039,430,9001,8801,2.56326942,9110,8802,-75.17471722,9110,8806,864476.923,9001,8807,817199.827,9001,,,,,,,,,,,,,
+6262,"MAGNA-SIRGAS / Pasto urban grid",9001,4686,6230,1052,1,0,4500,1039,2530,9001,8801,1.120356225,9110,8802,-77.151125228,9110,8806,980469.695,9001,8807,624555.332,9001,,,,,,,,,,,,,
+6263,"MAGNA-SIRGAS / Pereira urban grid",9001,4686,6231,1052,1,0,4500,1039,1500,9001,8801,4.4848937,9110,8802,-75.4138225,9110,8806,1153492.012,9001,8807,1024195.255,9001,,,,,,,,,,,,,
+6264,"MAGNA-SIRGAS / Popayan urban grid",9001,4686,6232,1052,1,0,4500,1039,1740,9001,8801,2.272217558,9110,8802,-76.362192989,9110,8806,1052430.525,9001,8807,763366.548,9001,,,,,,,,,,,,,
+6265,"MAGNA-SIRGAS / Puerto Carreno urban grid",9001,4686,6233,1052,1,0,4500,1039,51.58,9001,8801,6.105059709,9110,8802,-67.300270089,9110,8806,1063834.703,9001,8807,1175257.481,9001,,,,,,,,,,,,,
+6266,"MAGNA-SIRGAS / Quibdo urban grid",9001,4686,6234,1052,1,0,4500,1039,44,9001,8801,5.413929158,9110,8802,-76.390271389,9110,8806,1047273.617,9001,8807,1121443.09,9001,,,,,,,,,,,,,
+6267,"MAGNA-SIRGAS / Riohacha urban grid",9001,4686,6235,1052,1,0,4500,1039,6,9001,8801,11.321288798,9110,8802,-72.540996793,9110,8806,1128154.73,9001,8807,1767887.914,9001,,,,,,,,,,,,,
+6268,"MAGNA-SIRGAS / San Andres urban grid",9001,4686,6236,1052,1,0,4500,1039,6,9001,8801,12.312565957,9110,8802,-81.434575342,9110,8806,820439.298,9001,8807,1877357.828,9001,,,,,,,,,,,,,
+6269,"MAGNA-SIRGAS / San Jose del Guaviare urban grid",9001,4686,6237,1052,1,0,4500,1039,185,9001,8801,2.335068419,9110,8802,-72.382411997,9110,8806,1159876.62,9001,8807,775380.342,9001,,,,,,,,,,,,,
+6270,"MAGNA-SIRGAS / Santa Marta urban grid",9001,4686,6238,1052,1,0,4500,1039,29,9001,8801,11.1310715,9110,8802,-74.1330019,9110,8806,983892.409,9001,8807,1732533.518,9001,,,,,,,,,,,,,
+6271,"MAGNA-SIRGAS / Sucre urban grid",9001,4686,6239,1052,1,0,4500,1039,20,9001,8801,8.483798132,9110,8802,-74.432088057,9110,8806,929043.607,9001,8807,1466125.658,9001,,,,,,,,,,,,,
+6272,"MAGNA-SIRGAS / Tunja urban grid",9001,4686,6240,1052,1,0,4500,1039,2800,9001,8801,5.320310106,9110,8802,-73.210698004,9110,8806,1080514.91,9001,8807,1103772.028,9001,,,,,,,,,,,,,
+6273,"MAGNA-SIRGAS / Valledupar urban grid",9001,4686,6241,1052,1,0,4500,1039,200,9001,8801,10.265014,9110,8802,-73.1447657,9110,8806,1090979.66,9001,8807,1647208.93,9001,,,,,,,,,,,,,
+6274,"MAGNA-SIRGAS / Villavicencio urban grid",9001,4686,6242,1052,1,0,4500,1039,427.19,9001,8801,4.091935036,9110,8802,-73.372814955,9110,8806,1050678.757,9001,8807,950952.124,9001,,,,,,,,,,,,,
+6275,"MAGNA-SIRGAS / Yopal urban grid",9001,4686,6243,1052,1,0,4500,1039,300,9001,8801,5.2114138,9110,8802,-72.2512145,9110,8806,851184.177,9001,8807,1083954.137,9001,,,,,,,,,,,,,
+6307,"NAD83(CORS96) / Puerto Rico and Virgin Is.",9001,6783,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,,
+6312,"CGRS93 / Cyprus Local Transverse Mercator",9001,6311,6308,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.99995,9201,8806,200000,9001,8807,-3500000,9001,,,,,,,,,,,,,
+6316,Macedonia State Coordinate System zone 7,9001,3906,18277,9807,1,0,4498,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+6328,"NAD83(2011) / UTM zone 59N",9001,6318,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6329,"NAD83(2011) / UTM zone 60N",9001,6318,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6330,"NAD83(2011) / UTM zone 1N",9001,6318,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6331,"NAD83(2011) / UTM zone 2N",9001,6318,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6332,"NAD83(2011) / UTM zone 3N",9001,6318,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6333,"NAD83(2011) / UTM zone 4N",9001,6318,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6334,"NAD83(2011) / UTM zone 5N",9001,6318,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6335,"NAD83(2011) / UTM zone 6N",9001,6318,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6336,"NAD83(2011) / UTM zone 7N",9001,6318,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6337,"NAD83(2011) / UTM zone 8N",9001,6318,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6338,"NAD83(2011) / UTM zone 9N",9001,6318,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6339,"NAD83(2011) / UTM zone 10N",9001,6318,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6340,"NAD83(2011) / UTM zone 11N",9001,6318,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6341,"NAD83(2011) / UTM zone 12N",9001,6318,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6342,"NAD83(2011) / UTM zone 13N",9001,6318,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6343,"NAD83(2011) / UTM zone 14N",9001,6318,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6344,"NAD83(2011) / UTM zone 15N",9001,6318,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6345,"NAD83(2011) / UTM zone 16N",9001,6318,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6346,"NAD83(2011) / UTM zone 17N",9001,6318,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6347,"NAD83(2011) / UTM zone 18N",9001,6318,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6348,"NAD83(2011) / UTM zone 19N",9001,6318,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6350,"NAD83(2011) / Conus Albers",9001,6318,5068,9822,1,0,4499,8821,23,9102,8822,-96,9102,8823,29.3,9110,8824,45.3,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+6351,"NAD83(2011) / EPSG Arctic zone 5-29",9001,6318,6029,9802,1,0,4400,8821,72.01300331,9110,8822,-163,9110,8823,73.4,9110,8824,70.2,9110,8826,29500000,9001,8827,5500000,9001,,,,,,,,,,
+6352,"NAD83(2011) / EPSG Arctic zone 5-31",9001,6318,6030,9802,1,0,4400,8821,72.01300331,9110,8822,-147,9110,8823,73.4,9110,8824,70.2,9110,8826,31500000,9001,8827,5500000,9001,,,,,,,,,,
+6353,"NAD83(2011) / EPSG Arctic zone 6-14",9001,6318,6039,9802,1,0,4400,8821,68.4114912,9110,8822,-165,9110,8823,70.2,9110,8824,67,9110,8826,14500000,9001,8827,6500000,9001,,,,,,,,,,
+6354,"NAD83(2011) / EPSG Arctic zone 6-16",9001,6318,6040,9802,1,0,4400,8821,68.4114912,9110,8822,-147,9110,8823,70.2,9110,8824,67,9110,8826,16500000,9001,8827,6500000,9001,,,,,,,,,,
+6355,"NAD83(2011) / Alabama East",9001,6318,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6356,"NAD83(2011) / Alabama West",9001,6318,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+6362,"Mexico ITRF92 / LCC",9001,4483,6361,9802,1,0,4500,8821,12,9102,8822,-102,9102,8823,17.5,9102,8824,29.5,9102,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+6366,"Mexico ITRF2008 / UTM zone 11N",9001,6365,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6367,"Mexico ITRF2008 / UTM zone 12N",9001,6365,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6368,"Mexico ITRF2008 / UTM zone 13N",9001,6365,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6369,"Mexico ITRF2008 / UTM zone 14N",9001,6365,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6370,"Mexico ITRF2008 / UTM zone 15N",9001,6365,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6371,"Mexico ITRF2008 / UTM zone 16N",9001,6365,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6372,"Mexico ITRF2008 / LCC",9001,6365,6361,9802,1,0,4500,8821,12,9102,8822,-102,9102,8823,17.5,9102,8824,29.5,9102,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+6381,"UCS-2000 / Ukraine TM zone 7",9001,5561,6374,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6382,"UCS-2000 / Ukraine TM zone 8",9001,5561,6375,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6383,"UCS-2000 / Ukraine TM zone 9",9001,5561,6376,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6384,"UCS-2000 / Ukraine TM zone 10",9001,5561,6377,9807,1,0,4530,8801,0,9102,8802,30,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6385,"UCS-2000 / Ukraine TM zone 11",9001,5561,6378,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6386,"UCS-2000 / Ukraine TM zone 12",9001,5561,6379,9807,1,0,4530,8801,0,9102,8802,36,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6387,"UCS-2000 / Ukraine TM zone 13",9001,5561,6380,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6391,Cayman Islands National Grid 2011,9002,6135,6390,9802,1,0,1039,8821,19.2,9110,8822,-80.34,9110,8823,19.2,9110,8824,19.42,9110,8826,2950000,9002,8827,1900000,9002,,,,,,,,,,
+6393,"NAD83(2011) / Alaska Albers",9001,6318,15021,9822,1,0,4499,8821,50,9102,8822,-154,9102,8823,55,9102,8824,65,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+6394,"NAD83(2011) / Alaska zone 1",9001,6318,15031,9812,1,0,4499,8806,5000000,9001,8807,-5000000,9001,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,,
+6395,"NAD83(2011) / Alaska zone 2",9001,6318,15032,9807,1,0,4499,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6396,"NAD83(2011) / Alaska zone 3",9001,6318,15033,9807,1,0,4499,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6397,"NAD83(2011) / Alaska zone 4",9001,6318,15034,9807,1,0,4499,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6398,"NAD83(2011) / Alaska zone 5",9001,6318,15035,9807,1,0,4499,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6399,"NAD83(2011) / Alaska zone 6",9001,6318,15036,9807,1,0,4499,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6400,"NAD83(2011) / Alaska zone 7",9001,6318,15037,9807,1,0,4499,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6401,"NAD83(2011) / Alaska zone 8",9001,6318,15038,9807,1,0,4499,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6402,"NAD83(2011) / Alaska zone 9",9001,6318,15039,9807,1,0,4499,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6403,"NAD83(2011) / Alaska zone 10",9001,6318,15040,9802,1,0,4499,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+6404,"NAD83(2011) / Arizona Central",9001,6318,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+6405,"NAD83(2011) / Arizona Central (ft)",9002,6318,15305,9807,1,0,4495,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+6406,"NAD83(2011) / Arizona East",9001,6318,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+6407,"NAD83(2011) / Arizona East (ft)",9002,6318,15304,9807,1,0,4495,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+6408,"NAD83(2011) / Arizona West",9001,6318,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+6409,"NAD83(2011) / Arizona West (ft)",9002,6318,15306,9807,1,0,4495,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,700000,9002,8807,0,9002,,,,,,,,,,,,,
+6410,"NAD83(2011) / Arkansas North",9001,6318,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6411,"NAD83(2011) / Arkansas North (ftUS)",9003,6318,15385,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+6412,"NAD83(2011) / Arkansas South",9001,6318,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+6413,"NAD83(2011) / Arkansas South (ftUS)",9003,6318,15386,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+6414,"NAD83(2011) / California Albers",9001,6318,10420,9822,1,0,4499,8821,0,9102,8822,-120,9102,8823,34,9102,8824,40.5,9102,8826,0,9001,8827,-4000000,9001,,,,,,,,,,
+6415,"NAD83(2011) / California zone 1",9001,6318,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+6416,"NAD83(2011) / California zone 1 (ftUS)",9003,6318,15307,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6417,"NAD83(2011) / California zone 2",9001,6318,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+6418,"NAD83(2011) / California zone 2 (ftUS)",9003,6318,15308,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6419,"NAD83(2011) / California zone 3",9001,6318,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+6420,"NAD83(2011) / California zone 3 (ftUS)",9003,6318,15309,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6421,"NAD83(2011) / California zone 4",9001,6318,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+6422,"NAD83(2011) / California zone 4 (ftUS)",9003,6318,15310,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6423,"NAD83(2011) / California zone 5",9001,6318,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+6424,"NAD83(2011) / California zone 5 (ftUS)",9003,6318,15311,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6425,"NAD83(2011) / California zone 6",9001,6318,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+6426,"NAD83(2011) / California zone 6 (ftUS)",9003,6318,15312,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,6561666.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6427,"NAD83(2011) / Colorado Central",9001,6318,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+6428,"NAD83(2011) / Colorado Central (ftUS)",9003,6318,15314,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+6429,"NAD83(2011) / Colorado North",9001,6318,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+6430,"NAD83(2011) / Colorado North (ftUS)",9003,6318,15313,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+6431,"NAD83(2011) / Colorado South",9001,6318,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+6432,"NAD83(2011) / Colorado South (ftUS)",9003,6318,15315,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,3000000,9003,8827,1000000,9003,,,,,,,,,,
+6433,"NAD83(2011) / Connecticut",9001,6318,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,,
+6434,"NAD83(2011) / Connecticut (ftUS)",9003,6318,15316,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,1000000,9003,8827,500000,9003,,,,,,,,,,
+6435,"NAD83(2011) / Delaware",9001,6318,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6436,"NAD83(2011) / Delaware (ftUS)",9003,6318,15317,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+6437,"NAD83(2011) / Florida East",9001,6318,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6438,"NAD83(2011) / Florida East (ftUS)",9003,6318,15318,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+6439,"NAD83(2011) / Florida GDL Albers",9001,6318,10934,9822,1,0,4499,8821,24,9110,8822,-84,9110,8823,24,9110,8824,31.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6440,"NAD83(2011) / Florida North",9001,6318,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6441,"NAD83(2011) / Florida North (ftUS)",9003,6318,15320,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6442,"NAD83(2011) / Florida West",9001,6318,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6443,"NAD83(2011) / Florida West (ftUS)",9003,6318,15319,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+6444,"NAD83(2011) / Georgia East",9001,6318,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6445,"NAD83(2011) / Georgia East (ftUS)",9003,6318,15321,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+6446,"NAD83(2011) / Georgia West",9001,6318,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+6447,"NAD83(2011) / Georgia West (ftUS)",9003,6318,15322,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+6448,"NAD83(2011) / Idaho Central",9001,6318,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6449,"NAD83(2011) / Idaho Central (ftUS)",9003,6318,15324,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+6450,"NAD83(2011) / Idaho East",9001,6318,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6451,"NAD83(2011) / Idaho East (ftUS)",9003,6318,15323,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,656166.667,9003,8807,0,9003,,,,,,,,,,,,,
+6452,"NAD83(2011) / Idaho West",9001,6318,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,,
+6453,"NAD83(2011) / Idaho West (ftUS)",9003,6318,15325,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,2624666.667,9003,8807,0,9003,,,,,,,,,,,,,
+6454,"NAD83(2011) / Illinois East",9001,6318,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6455,"NAD83(2011) / Illinois East (ftUS)",9003,6318,15387,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+6456,"NAD83(2011) / Illinois West",9001,6318,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+6457,"NAD83(2011) / Illinois West (ftUS)",9003,6318,15388,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,2296583.3333,9003,8807,0,9003,,,,,,,,,,,,,
+6458,"NAD83(2011) / Indiana East",9001,6318,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,,
+6459,"NAD83(2011) / Indiana East (ftUS)",9003,6318,15372,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,328083.333,9003,8807,820208.333,9003,,,,,,,,,,,,,
+6460,"NAD83(2011) / Indiana West",9001,6318,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,,
+6461,"NAD83(2011) / Indiana West (ftUS)",9003,6318,15373,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,2952750,9003,8807,820208.333,9003,,,,,,,,,,,,,
+6462,"NAD83(2011) / Iowa North",9001,6318,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+6463,"NAD83(2011) / Iowa North (ftUS)",9003,6318,15377,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,4921250,9003,8827,3280833.3333,9003,,,,,,,,,,
+6464,"NAD83(2011) / Iowa South",9001,6318,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+6465,"NAD83(2011) / Iowa South (ftUS)",9003,6318,15378,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+6466,"NAD83(2011) / Kansas North",9001,6318,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6467,"NAD83(2011) / Kansas North (ftUS)",9003,6318,15379,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+6468,"NAD83(2011) / Kansas South",9001,6318,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+6469,"NAD83(2011) / Kansas South (ftUS)",9003,6318,15380,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,1312333.3333,9003,8827,1312333.3333,9003,,,,,,,,,,
+6470,"NAD83(2011) / Kentucky North",9001,6318,15303,9802,1,0,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+6471,"NAD83(2011) / Kentucky North (ftUS)",9003,6318,15328,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+6472,"NAD83(2011) / Kentucky Single Zone",9001,6318,11630,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+6473,"NAD83(2011) / Kentucky Single Zone (ftUS)",9003,6318,15375,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.05,9110,8824,38.4,9110,8826,4921250,9003,8827,3280833.333,9003,,,,,,,,,,
+6474,"NAD83(2011) / Kentucky South",9001,6318,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+6475,"NAD83(2011) / Kentucky South (ftUS)",9003,6318,15329,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,1640416.667,9003,8827,1640416.667,9003,,,,,,,,,,
+6476,"NAD83(2011) / Louisiana North",9001,6318,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+6477,"NAD83(2011) / Louisiana North (ftUS)",9003,6318,15391,9802,1,0,4497,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+6478,"NAD83(2011) / Louisiana South",9001,6318,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+6479,"NAD83(2011) / Louisiana South (ftUS)",9003,6318,15392,9802,1,0,4497,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,3280833.3333,9003,8827,0,9003,,,,,,,,,,
+6480,"NAD83(2011) / Maine CS2000 Central",9001,6318,11854,9807,1,0,4499,8801,43.3,9110,8802,-69.073,9110,8805,0.99998,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6481,"NAD83(2011) / Maine CS2000 East",9001,6318,11851,9807,1,0,4499,8801,43.5,9110,8802,-67.523,9110,8805,0.99998,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+6482,"NAD83(2011) / Maine CS2000 West",9001,6318,11853,9807,1,0,4499,8801,42.5,9110,8802,-70.223,9110,8805,0.99998,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6483,"NAD83(2011) / Maine East",9001,6318,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6484,"NAD83(2011) / Maine East (ftUS)",9003,6318,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+6485,"NAD83(2011) / Maine West",9001,6318,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,,
+6486,"NAD83(2011) / Maine West (ftUS)",9003,6318,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+6487,"NAD83(2011) / Maryland",9001,6318,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6488,"NAD83(2011) / Maryland (ftUS)",9003,6318,15330,9802,1,0,4497,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,1312333.333,9003,8827,0,9003,,,,,,,,,,
+6489,"NAD83(2011) / Massachusetts Island",9001,6318,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+6490,"NAD83(2011) / Massachusetts Island (ftUS)",9003,6318,15332,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+6491,"NAD83(2011) / Massachusetts Mainland",9001,6318,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,,
+6492,"NAD83(2011) / Massachusetts Mainland (ftUS)",9003,6318,15331,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,656166.667,9003,8827,2460625,9003,,,,,,,,,,
+6493,"NAD83(2011) / Michigan Central",9001,6318,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,,
+6494,"NAD83(2011) / Michigan Central (ft)",9002,6318,15334,9802,1,0,4495,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,19685039.37,9002,8827,0,9002,,,,,,,,,,
+6495,"NAD83(2011) / Michigan North",9001,6318,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,,
+6496,"NAD83(2011) / Michigan North (ft)",9002,6318,15333,9802,1,0,4495,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,26246719.16,9002,8827,0,9002,,,,,,,,,,
+6497,"NAD83(2011) / Michigan Oblique Mercator",9001,6318,12150,9812,1,0,4499,8806,2546731.496,9001,8807,-4354009.816,9001,8811,45.1833,9110,8812,-86,9110,8813,337.25556,9102,8814,337.25556,9102,8815,0.9996,9201,,,,,,,
+6498,"NAD83(2011) / Michigan South",9001,6318,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,,
+6499,"NAD83(2011) / Michigan South (ft)",9002,6318,15335,9802,1,0,4495,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,13123359.58,9002,8827,0,9002,,,,,,,,,,
+6500,"NAD83(2011) / Minnesota Central",9001,6318,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+6501,"NAD83(2011) / Minnesota Central (ftUS)",9003,6318,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+6502,"NAD83(2011) / Minnesota North",9001,6318,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+6503,"NAD83(2011) / Minnesota North (ftUS)",9003,6318,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+6504,"NAD83(2011) / Minnesota South",9001,6318,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+6505,"NAD83(2011) / Minnesota South (ftUS)",9003,6318,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+6506,"NAD83(2011) / Mississippi East",9001,6318,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6507,"NAD83(2011) / Mississippi East (ftUS)",9003,6318,15336,9807,1,0,4497,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+6508,"NAD83(2011) / Mississippi TM",9001,6318,3813,9807,1,0,4499,8801,32.3,9110,8802,-89.45,9110,8805,0.9998335,9201,8806,500000,9001,8807,1300000,9001,,,,,,,,,,,,,
+6509,"NAD83(2011) / Mississippi West",9001,6318,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+6510,"NAD83(2011) / Mississippi West (ftUS)",9003,6318,15337,9807,1,0,4497,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,2296583.333,9003,8807,0,9003,,,,,,,,,,,,,
+6511,"NAD83(2011) / Missouri Central",9001,6318,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6512,"NAD83(2011) / Missouri East",9001,6318,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+6513,"NAD83(2011) / Missouri West",9001,6318,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,,
+6514,"NAD83(2011) / Montana",9001,6318,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6515,"NAD83(2011) / Montana (ft)",9002,6318,15338,9802,1,0,4495,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+6516,"NAD83(2011) / Nebraska",9001,6318,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+6517,"NAD83(2011) / Nebraska (ftUS)",9003,4759,15396,9802,1,1,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+6518,"NAD83(2011) / Nevada Central",9001,6318,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,,
+6519,"NAD83(2011) / Nevada Central (ftUS)",9003,6318,15382,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,1640416.6667,9003,8807,19685000,9003,,,,,,,,,,,,,
+6520,"NAD83(2011) / Nevada East",9001,6318,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,,
+6521,"NAD83(2011) / Nevada East (ftUS)",9003,6318,15381,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,656166.6667,9003,8807,26246666.6667,9003,,,,,,,,,,,,,
+6522,"NAD83(2011) / Nevada West",9001,6318,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,,
+6523,"NAD83(2011) / Nevada West (ftUS)",9003,6318,15383,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,2624666.6667,9003,8807,13123333.3333,9003,,,,,,,,,,,,,
+6524,"NAD83(2011) / New Hampshire",9001,6318,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+6525,"NAD83(2011) / New Hampshire (ftUS)",9003,6318,15389,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+6526,"NAD83(2011) / New Jersey",9001,6318,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+6527,"NAD83(2011) / New Jersey (ftUS)",9003,6318,15384,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+6528,"NAD83(2011) / New Mexico Central",9001,6318,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6529,"NAD83(2011) / New Mexico Central (ftUS)",9003,6318,15340,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+6530,"NAD83(2011) / New Mexico East",9001,6318,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,,
+6531,"NAD83(2011) / New Mexico East (ftUS)",9003,6318,15339,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,541337.5,9003,8807,0,9003,,,,,,,,,,,,,
+6532,"NAD83(2011) / New Mexico West",9001,6318,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,,
+6533,"NAD83(2011) / New Mexico West (ftUS)",9003,6318,15341,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,2723091.667,9003,8807,0,9003,,,,,,,,,,,,,
+6534,"NAD83(2011) / New York Central",9001,6318,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+6535,"NAD83(2011) / New York Central (ftUS)",9003,6318,15343,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,820208.333,9003,8807,0,9003,,,,,,,,,,,,,
+6536,"NAD83(2011) / New York East",9001,6318,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+6537,"NAD83(2011) / New York East (ftUS)",9003,6318,15342,9807,1,0,4497,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,492125,9003,8807,0,9003,,,,,,,,,,,,,
+6538,"NAD83(2011) / New York Long Island",9001,6318,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,,
+6539,"NAD83(2011) / New York Long Island (ftUS)",9003,6318,15345,9802,1,0,4497,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,984250,9003,8827,0,9003,,,,,,,,,,
+6540,"NAD83(2011) / New York West",9001,6318,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,,
+6541,"NAD83(2011) / New York West (ftUS)",9003,6318,15344,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,1148291.667,9003,8807,0,9003,,,,,,,,,,,,,
+6542,"NAD83(2011) / North Carolina",9001,6318,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,,
+6543,"NAD83(2011) / North Carolina (ftUS)",9003,6318,15346,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+6544,"NAD83(2011) / North Dakota North",9001,6318,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6545,"NAD83(2011) / North Dakota North (ft)",9002,6318,15347,9802,1,0,4495,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+6546,"NAD83(2011) / North Dakota South",9001,6318,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6547,"NAD83(2011) / North Dakota South (ft)",9002,6318,15348,9802,1,0,4495,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,1968503.937,9002,8827,0,9002,,,,,,,,,,
+6548,"NAD83(2011) / Ohio North",9001,6318,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6549,"NAD83(2011) / Ohio North (ftUS)",9003,6318,13433,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6550,"NAD83(2011) / Ohio South",9001,6318,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6551,"NAD83(2011) / Ohio South (ftUS)",9003,6318,13434,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6552,"NAD83(2011) / Oklahoma North",9001,6318,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6553,"NAD83(2011) / Oklahoma North (ftUS)",9003,6318,15349,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6554,"NAD83(2011) / Oklahoma South",9001,6318,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6555,"NAD83(2011) / Oklahoma South (ftUS)",9003,6318,15350,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6556,"NAD83(2011) / Oregon LCC (m)",9001,6318,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6557,"NAD83(2011) / Oregon GIC Lambert (ft)",9002,6318,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,,
+6558,"NAD83(2011) / Oregon North",9001,6318,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+6559,"NAD83(2011) / Oregon North (ft)",9002,6318,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,,
+6560,"NAD83(2011) / Oregon South",9001,6318,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,,
+6561,"NAD83(2011) / Oregon South (ft)",9002,6318,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,,
+6562,"NAD83(2011) / Pennsylvania North",9001,6318,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6563,"NAD83(2011) / Pennsylvania North (ftUS)",9003,6318,15353,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6564,"NAD83(2011) / Pennsylvania South",9001,6318,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6565,"NAD83(2011) / Pennsylvania South (ftUS)",9003,6318,15354,9802,1,0,4497,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6566,"NAD83(2011) / Puerto Rico and Virgin Is.",9001,6318,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,,
+6567,"NAD83(2011) / Rhode Island",9001,6318,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,,
+6568,"NAD83(2011) / Rhode Island (ftUS)",9003,6318,15390,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,,
+6569,"NAD83(2011) / South Carolina",9001,6318,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,,
+6570,"NAD83(2011) / South Carolina (ft)",9002,6318,15355,9802,1,0,4495,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,2000000,9002,8827,0,9002,,,,,,,,,,
+6571,"NAD83(2011) / South Dakota North",9001,6318,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6572,"NAD83(2011) / South Dakota North (ftUS)",9003,6318,15394,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6573,"NAD83(2011) / South Dakota South",9001,6318,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6574,"NAD83(2011) / South Dakota South (ftUS)",9003,6318,15395,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6575,"NAD83(2011) / Tennessee",9001,6318,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6576,"NAD83(2011) / Tennessee (ftUS)",9003,6318,15356,9802,1,0,4497,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6577,"NAD83(2011) / Texas Central",9001,6318,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,,
+6578,"NAD83(2011) / Texas Central (ftUS)",9003,6318,15359,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,2296583.333,9003,8827,9842500,9003,,,,,,,,,,
+6579,"NAD83(2011) / Texas Centric Albers Equal Area",9001,6318,14254,9822,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,6000000,9001,,,,,,,,,,
+6580,"NAD83(2011) / Texas Centric Lambert Conformal",9001,6318,14253,9802,1,0,4499,8821,18,9110,8822,-100,9110,8823,27.3,9110,8824,35,9110,8826,1500000,9001,8827,5000000,9001,,,,,,,,,,
+6581,"NAD83(2011) / Texas North",9001,6318,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,,
+6582,"NAD83(2011) / Texas North (ftUS)",9003,6318,15357,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,656166.667,9003,8827,3280833.333,9003,,,,,,,,,,
+6583,"NAD83(2011) / Texas North Central",9001,6318,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,,
+6584,"NAD83(2011) / Texas North Central (ftUS)",9003,6318,15358,9802,1,0,4497,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,1968500,9003,8827,6561666.667,9003,,,,,,,,,,
+6585,"NAD83(2011) / Texas South",9001,6318,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,,
+6586,"NAD83(2011) / Texas South (ftUS)",9003,6318,15361,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,984250,9003,8827,16404166.667,9003,,,,,,,,,,
+6587,"NAD83(2011) / Texas South Central",9001,6318,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,,
+6588,"NAD83(2011) / Texas South Central (ftUS)",9003,6318,15360,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,1968500,9003,8827,13123333.333,9003,,,,,,,,,,
+6589,"NAD83(2011) / Vermont",9001,6318,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6590,"NAD83(2011) / Vermont (ftUS)",9003,6318,5645,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+6591,"NAD83(2011) / Virginia Lambert",9001,6318,3967,9802,1,0,4499,8821,36,9102,8822,-79.5,9102,8823,37,9102,8824,39.5,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+6592,"NAD83(2011) / Virginia North",9001,6318,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,,
+6593,"NAD83(2011) / Virginia North (ftUS)",9003,6318,15365,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,11482916.667,9003,8827,6561666.667,9003,,,,,,,,,,
+6594,"NAD83(2011) / Virginia South",9001,6318,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,,
+6595,"NAD83(2011) / Virginia South (ftUS)",9003,6318,15366,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,11482916.667,9003,8827,3280833.333,9003,,,,,,,,,,
+6596,"NAD83(2011) / Washington North",9001,6318,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+6597,"NAD83(2011) / Washington North (ftUS)",9003,6318,15367,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+6598,"NAD83(2011) / Washington South",9001,6318,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+6599,"NAD83(2011) / Washington South (ftUS)",9003,6318,15368,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,1640416.667,9003,8827,0,9003,,,,,,,,,,
+6600,"NAD83(2011) / West Virginia North",9001,6318,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6601,"NAD83(2011) / West Virginia North (ftUS)",9003,6318,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6602,"NAD83(2011) / West Virginia South",9001,6318,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6603,"NAD83(2011) / West Virginia South (ftUS)",9003,6318,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6604,"NAD83(2011) / Wisconsin Central",9001,4759,14832,9802,1,1,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6605,"NAD83(2011) / Wisconsin Central (ftUS)",9003,6318,15370,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6606,"NAD83(2011) / Wisconsin North",9001,6318,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6607,"NAD83(2011) / Wisconsin North (ftUS)",9003,6318,15369,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6608,"NAD83(2011) / Wisconsin South",9001,6318,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6609,"NAD83(2011) / Wisconsin South (ftUS)",9003,6318,15371,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+6610,"NAD83(2011) / Wisconsin Transverse Mercator",9001,6318,14841,9807,1,0,4499,8801,0,9102,8802,-90,9102,8805,0.9996,9201,8806,520000,9001,8807,-4480000,9001,,,,,,,,,,,,,
+6611,"NAD83(2011) / Wyoming East",9001,6318,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+6612,"NAD83(2011) / Wyoming East (ftUS)",9003,6318,14935,9807,1,0,4497,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,656166.6667,9003,8807,0,9003,,,,,,,,,,,,,
+6613,"NAD83(2011) / Wyoming East Central",9001,6318,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,,
+6614,"NAD83(2011) / Wyoming East Central (ftUS)",9003,6318,14936,9807,1,0,4497,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,1312333.3333,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+6615,"NAD83(2011) / Wyoming West",9001,6318,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,,
+6616,"NAD83(2011) / Wyoming West (ftUS)",9003,6318,14938,9807,1,0,4497,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,2624666.6667,9003,8807,328083.3333,9003,,,,,,,,,,,,,
+6617,"NAD83(2011) / Wyoming West Central",9001,6318,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+6618,"NAD83(2011) / Wyoming West Central (ftUS)",9003,6318,14937,9807,1,0,4497,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,1968500,9003,8807,0,9003,,,,,,,,,,,,,
+6619,"NAD83(2011) / Utah Central",9001,6318,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,,
+6620,"NAD83(2011) / Utah North",9001,6318,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,,
+6621,"NAD83(2011) / Utah South",9001,6318,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,,
+6622,"NAD83(CSRS) / Quebec Lambert",9001,4617,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+6623,"NAD83 / Quebec Albers",9001,4269,6645,9822,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+6624,"NAD83(CSRS) / Quebec Albers",9001,4617,6645,9822,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+6625,"NAD83(2011) / Utah Central (ftUS)",9003,6318,15298,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,1640416.6667,9003,8827,6561666.6667,9003,,,,,,,,,,
+6626,"NAD83(2011) / Utah North (ftUS)",9003,6318,15297,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,1640416.6667,9003,8827,3280833.3333,9003,,,,,,,,,,
+6627,"NAD83(2011) / Utah South (ftUS)",9003,6318,15299,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,1640416.6667,9003,8827,9842500,9003,,,,,,,,,,
+6628,"NAD83(PA11) / Hawaii zone 1",9001,6322,15131,9807,1,0,4499,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6629,"NAD83(PA11) / Hawaii zone 2",9001,6322,15132,9807,1,0,4499,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6630,"NAD83(PA11) / Hawaii zone 3",9001,6322,15133,9807,1,0,4499,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6631,"NAD83(PA11) / Hawaii zone 4",9001,6322,15134,9807,1,0,4499,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6632,"NAD83(PA11) / Hawaii zone 5",9001,6322,15135,9807,1,0,4499,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6633,"NAD83(PA11) / Hawaii zone 3 (ftUS)",9003,6322,15138,9807,1,0,4497,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,1640416.6667,9003,8807,0,9003,,,,,,,,,,,,,
+6634,"NAD83(PA11) / UTM zone 4N",9001,6322,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6635,"NAD83(PA11) / UTM zone 5N",9001,6322,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6636,"NAD83(PA11) / UTM zone 2S",9001,6322,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6637,"NAD83(MA11) / Guam Map Grid",9001,6325,4325,9807,1,0,4499,8801,13.3,9110,8802,144.45,9110,8805,1,9201,8806,100000,9001,8807,200000,9001,,,,,,,,,,,,,
+6646,"Karbala 1979 / Iraq National Grid",9001,4743,19907,9807,1,0,4400,8801,29.0134566,9110,8802,46.3,9110,8805,0.9994,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,,
+6669,"JGD2011 / Japan Plane Rectangular CS I",9001,6668,17801,9807,1,0,4530,8801,33,9110,8802,129.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6670,"JGD2011 / Japan Plane Rectangular CS II",9001,6668,17802,9807,1,0,4530,8801,33,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6671,"JGD2011 / Japan Plane Rectangular CS III",9001,6668,17803,9807,1,0,4530,8801,36,9110,8802,132.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6672,"JGD2011 / Japan Plane Rectangular CS IV",9001,6668,17804,9807,1,0,4530,8801,33,9110,8802,133.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6673,"JGD2011 / Japan Plane Rectangular CS V",9001,6668,17805,9807,1,0,4530,8801,36,9110,8802,134.2,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6674,"JGD2011 / Japan Plane Rectangular CS VI",9001,6668,17806,9807,1,0,4530,8801,36,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6675,"JGD2011 / Japan Plane Rectangular CS VII",9001,6668,17807,9807,1,0,4530,8801,36,9110,8802,137.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6676,"JGD2011 / Japan Plane Rectangular CS VIII",9001,6668,17808,9807,1,0,4530,8801,36,9110,8802,138.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6677,"JGD2011 / Japan Plane Rectangular CS IX",9001,6668,17809,9807,1,0,4530,8801,36,9110,8802,139.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6678,"JGD2011 / Japan Plane Rectangular CS X",9001,6668,17810,9807,1,0,4530,8801,40,9110,8802,140.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6679,"JGD2011 / Japan Plane Rectangular CS XI",9001,6668,17811,9807,1,0,4530,8801,44,9110,8802,140.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6680,"JGD2011 / Japan Plane Rectangular CS XII",9001,6668,17812,9807,1,0,4530,8801,44,9110,8802,142.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6681,"JGD2011 / Japan Plane Rectangular CS XIII",9001,6668,17813,9807,1,0,4530,8801,44,9110,8802,144.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6682,"JGD2011 / Japan Plane Rectangular CS XIV",9001,6668,17814,9807,1,0,4530,8801,26,9110,8802,142,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6683,"JGD2011 / Japan Plane Rectangular CS XV",9001,6668,17815,9807,1,0,4530,8801,26,9110,8802,127.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6684,"JGD2011 / Japan Plane Rectangular CS XVI",9001,6668,17816,9807,1,0,4530,8801,26,9110,8802,124,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6685,"JGD2011 / Japan Plane Rectangular CS XVII",9001,6668,17817,9807,1,0,4530,8801,26,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6686,"JGD2011 / Japan Plane Rectangular CS XVIII",9001,6668,17818,9807,1,0,4530,8801,20,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6687,"JGD2011 / Japan Plane Rectangular CS XIX",9001,6668,17819,9807,1,0,4530,8801,26,9110,8802,154,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6688,"JGD2011 / UTM zone 51N",9001,6668,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6689,"JGD2011 / UTM zone 52N",9001,6668,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6690,"JGD2011 / UTM zone 53N",9001,6668,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6691,"JGD2011 / UTM zone 54N",9001,6668,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6692,"JGD2011 / UTM zone 55N",9001,6668,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6703,"WGS 84 / TM 60 SW",9001,4326,6702,9807,1,0,4400,8801,0,9102,8802,-60,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6707,"RDN2008 / UTM zone 32N (N-E)",9001,6706,16032,9807,1,0,4500,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6708,"RDN2008 / UTM zone 33N (N-E)",9001,6706,16033,9807,1,0,4500,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6709,"RDN2008 / UTM zone 34N (N-E)",9001,6706,16034,9807,1,0,4500,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6720,"WGS 84 / CIG92",9001,4326,6716,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.000024,9201,8806,50000,9001,8807,1300000,9001,,,,,,,,,,,,,
+6721,"GDA94 / CIG94",9001,4283,6717,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.00002514,9201,8806,50000,9001,8807,1300000,9001,,,,,,,,,,,,,
+6722,"WGS 84 / CKIG92",9001,4326,6718,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,1,9201,8806,50000,9001,8807,1400000,9001,,,,,,,,,,,,,
+6723,"GDA94 / CKIG94",9001,4283,6719,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,0.99999387,9201,8806,50000,9001,8807,1500000,9001,,,,,,,,,,,,,
+6732,"GDA94 / MGA zone 41",9001,4283,6725,9807,1,1,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6733,"GDA94 / MGA zone 42",9001,4283,6726,9807,1,1,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6734,"GDA94 / MGA zone 43",9001,4283,6727,9807,1,1,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6735,"GDA94 / MGA zone 44",9001,4283,6728,9807,1,1,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6736,"GDA94 / MGA zone 46",9001,4283,6729,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6737,"GDA94 / MGA zone 47",9001,4283,6730,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6738,"GDA94 / MGA zone 59",9001,4283,6731,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+6784,"NAD83(CORS96) / Oregon Baker zone (m)",9001,6783,6741,9807,1,0,4499,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,,
+6785,"NAD83(CORS96) / Oregon Baker zone (ft)",9002,6783,6742,9807,1,0,4495,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,,
+6786,"NAD83(2011) / Oregon Baker zone (m)",9001,6318,6741,9807,1,0,4499,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,,
+6787,"NAD83(2011) / Oregon Baker zone (ft)",9002,6318,6742,9807,1,0,4495,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,,
+6788,"NAD83(CORS96) / Oregon Bend-Klamath Falls zone (m)",9001,6783,6743,9807,1,0,4499,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+6789,"NAD83(CORS96) / Oregon Bend-Klamath Falls zone (ft)",9002,6783,6744,9807,1,0,4495,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+6790,"NAD83(2011) / Oregon Bend-Klamath Falls zone (m)",9001,6318,6743,9807,1,0,4499,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+6791,"NAD83(2011) / Oregon Bend-Klamath Falls zone (ft)",9002,6318,6744,9807,1,0,4495,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+6792,"NAD83(CORS96) / Oregon Bend-Redmond-Prineville zone (m)",9001,6783,6745,9801,1,0,4499,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,80000,9001,8807,130000,9001,,,,,,,,,,,,,
+6793,"NAD83(CORS96) / Oregon Bend-Redmond-Prineville zone (ft)",9002,6783,6746,9801,1,0,4495,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,262467.1916,9002,8807,426509.1864,9002,,,,,,,,,,,,,
+6794,"NAD83(2011) / Oregon Bend-Redmond-Prineville zone (m)",9001,6318,6745,9801,1,0,4499,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,80000,9001,8807,130000,9001,,,,,,,,,,,,,
+6795,"NAD83(2011) / Oregon Bend-Redmond-Prineville zone (ft)",9002,6318,6746,9801,1,0,4495,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,262467.1916,9002,8807,426509.1864,9002,,,,,,,,,,,,,
+6796,"NAD83(CORS96) / Oregon Bend-Burns zone (m)",9001,6783,6747,9801,1,0,4499,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,120000,9001,8807,60000,9001,,,,,,,,,,,,,
+6797,"NAD83(CORS96) / Oregon Bend-Burns zone (ft)",9002,6783,6748,9801,1,0,4495,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,393700.7874,9002,8807,196850.3937,9002,,,,,,,,,,,,,
+6798,"NAD83(2011) / Oregon Bend-Burns zone (m)",9001,6318,6747,9801,1,0,4499,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,120000,9001,8807,60000,9001,,,,,,,,,,,,,
+6799,"NAD83(2011) / Oregon Bend-Burns zone (ft)",9002,6318,6748,9801,1,0,4495,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,393700.7874,9002,8807,196850.3937,9002,,,,,,,,,,,,,
+6800,"NAD83(CORS96) / Oregon Canyonville-Grants Pass zone (m)",9001,6783,6749,9807,1,0,4499,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,,
+6801,"NAD83(CORS96) / Oregon Canyonville-Grants Pass zone (ft)",9002,6783,6750,9807,1,0,4495,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,,
+6802,"NAD83(2011) / Oregon Canyonville-Grants Pass zone (m)",9001,6318,6749,9807,1,0,4499,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,,
+6803,"NAD83(2011) / Oregon Canyonville-Grants Pass zone (ft)",9002,6318,6750,9807,1,0,4495,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,,
+6804,"NAD83(CORS96) / Oregon Columbia River East zone (m)",9001,6783,6751,9801,1,0,4499,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,150000,9001,8807,30000,9001,,,,,,,,,,,,,
+6805,"NAD83(CORS96) / Oregon Columbia River East zone (ft)",9002,6783,6752,9801,1,0,4495,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,492125.9843,9002,8807,98425.1969,9002,,,,,,,,,,,,,
+6806,"NAD83(2011) / Oregon Columbia River East zone (m)",9001,6318,6751,9801,1,0,4499,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,150000,9001,8807,30000,9001,,,,,,,,,,,,,
+6807,"NAD83(2011) / Oregon Columbia River East zone (ft)",9002,6318,6752,9801,1,0,4495,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,492125.9843,9002,8807,98425.1969,9002,,,,,,,,,,,,,
+6808,"NAD83(CORS96) / Oregon Columbia River West zone (m)",9001,6783,6753,9812,1,0,4499,8806,7000000,9001,8807,-3000000,9001,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,,
+6809,"NAD83(CORS96) / Oregon Columbia River West zone (ft)",9002,6783,6754,9812,1,0,4495,8806,22965879.2651,9002,8807,-9842519.685,9002,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,,
+6810,"NAD83(2011) / Oregon Columbia River West zone (m)",9001,6318,6753,9812,1,0,4499,8806,7000000,9001,8807,-3000000,9001,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,,
+6811,"NAD83(2011) / Oregon Columbia River West zone (ft)",9002,6318,6754,9812,1,0,4495,8806,22965879.2651,9002,8807,-9842519.685,9002,8811,45.55,9110,8812,-123,9110,8813,295,9102,8814,295,9102,8815,1,9201,,,,,,,
+6812,"NAD83(CORS96) / Oregon Cottage Grove-Canyonville zone (m)",9001,6783,6755,9807,1,0,4499,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6813,"NAD83(CORS96) / Oregon Cottage Grove-Canyonville zone (ft)",9002,6783,6756,9807,1,0,4495,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6814,"NAD83(2011) / Oregon Cottage Grove-Canyonville zone (m)",9001,6318,6755,9807,1,0,4499,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6815,"NAD83(2011) / Oregon Cottage Grove-Canyonville zone (ft)",9002,6318,6756,9807,1,0,4495,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6816,"NAD83(CORS96) / Oregon Dufur-Madras zone (m)",9001,6783,6757,9807,1,0,4499,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+6817,"NAD83(CORS96) / Oregon Dufur-Madras zone (ft)",9002,6783,6758,9807,1,0,4495,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+6818,"NAD83(2011) / Oregon Dufur-Madras zone (m)",9001,6318,6757,9807,1,0,4499,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+6819,"NAD83(2011) / Oregon Dufur-Madras zone (ft)",9002,6318,6758,9807,1,0,4495,8801,44.3,9110,8802,-121,9110,8805,1.00011,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+6820,"NAD83(CORS96) / Oregon Eugene zone (m)",9001,6783,6759,9807,1,0,4499,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6821,"NAD83(CORS96) / Oregon Eugene zone (ft)",9002,6783,6760,9807,1,0,4495,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6822,"NAD83(2011) / Oregon Eugene zone (m)",9001,6318,6759,9807,1,0,4499,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6823,"NAD83(2011) / Oregon Eugene zone (ft)",9002,6318,6760,9807,1,0,4495,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6824,"NAD83(CORS96) / Oregon Grants Pass-Ashland zone (m)",9001,6783,6761,9807,1,0,4499,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6825,"NAD83(CORS96) / Oregon Grants Pass-Ashland zone (ft)",9002,6783,6762,9807,1,0,4495,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6826,"NAD83(2011) / Oregon Grants Pass-Ashland zone (m)",9001,6318,6761,9807,1,0,4499,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6827,"NAD83(2011) / Oregon Grants Pass-Ashland zone (ft)",9002,6318,6762,9807,1,0,4495,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6828,"NAD83(CORS96) / Oregon Gresham-Warm Springs zone (m)",9001,6783,6763,9807,1,0,4499,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,10000,9001,8807,0,9001,,,,,,,,,,,,,
+6829,"NAD83(CORS96) / Oregon Gresham-Warm Springs zone (ft)",9002,6783,6764,9807,1,0,4495,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,32808.399,9002,8807,0,9002,,,,,,,,,,,,,
+6830,"NAD83(2011) / Oregon Gresham-Warm Springs zone (m)",9001,6318,6763,9807,1,0,4499,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,10000,9001,8807,0,9001,,,,,,,,,,,,,
+6831,"NAD83(2011) / Oregon Gresham-Warm Springs zone (ft)",9002,6318,6764,9807,1,0,4495,8801,45,9110,8802,-122.2,9110,8805,1.00005,9201,8806,32808.399,9002,8807,0,9002,,,,,,,,,,,,,
+6832,"NAD83(CORS96) / Oregon La Grande zone (m)",9001,6783,6765,9807,1,0,4499,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,,
+6833,"NAD83(CORS96) / Oregon La Grande zone (ft)",9002,6783,6766,9807,1,0,4495,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,,
+6834,"NAD83(2011) / Oregon La Grande zone (m)",9001,6318,6765,9807,1,0,4499,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,40000,9001,8807,0,9001,,,,,,,,,,,,,
+6835,"NAD83(2011) / Oregon La Grande zone (ft)",9002,6318,6766,9807,1,0,4495,8801,45,9102,8802,-118,9102,8805,1.00013,9201,8806,131233.5958,9002,8807,0,9002,,,,,,,,,,,,,
+6836,"NAD83(CORS96) / Oregon Ontario zone (m)",9001,6783,6767,9807,1,0,4499,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+6837,"NAD83(CORS96) / Oregon Ontario zone (ft)",9002,6783,6768,9807,1,0,4495,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+6838,"NAD83(2011) / Oregon Ontario zone (m)",9001,6318,6767,9807,1,0,4499,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+6839,"NAD83(2011) / Oregon Ontario zone (ft)",9002,6318,6768,9807,1,0,4495,8801,43.15,9110,8802,-117,9110,8805,1.0001,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+6840,"NAD83(CORS96) / Oregon Coast zone (m)",9001,6783,6769,9812,1,0,4499,8806,-300000,9001,8807,-4600000,9001,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,,
+6841,"NAD83(CORS96) / Oregon Coast zone (ft)",9002,6783,6770,9812,1,0,4495,8806,-984251.9685,9002,8807,-15091863.5171,9002,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,,
+6842,"NAD83(2011) / Oregon Coast zone (m)",9001,6318,6769,9812,1,0,4499,8806,-300000,9001,8807,-4600000,9001,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,,
+6843,"NAD83(2011) / Oregon Coast zone (ft)",9002,6318,6770,9812,1,0,4495,8806,-984251.9685,9002,8807,-15091863.5171,9002,8811,44.45,9110,8812,-124.03,9110,8813,5,9102,8814,5,9102,8815,1,9201,,,,,,,
+6844,"NAD83(CORS96) / Oregon Pendleton zone (m)",9001,6783,6771,9807,1,0,4499,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,,
+6845,"NAD83(CORS96) / Oregon Pendleton zone (ft)",9002,6783,6772,9807,1,0,4495,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,,
+6846,"NAD83(2011) / Oregon Pendleton zone (m)",9001,6318,6771,9807,1,0,4499,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,,
+6847,"NAD83(2011) / Oregon Pendleton zone (ft)",9002,6318,6772,9807,1,0,4495,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,,
+6848,"NAD83(CORS96) / Oregon Pendleton-La Grande zone (m)",9001,6783,6773,9807,1,0,4499,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,30000,9001,8807,0,9001,,,,,,,,,,,,,
+6849,"NAD83(CORS96) / Oregon Pendleton-La Grande zone (ft)",9002,6783,6774,9807,1,0,4495,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,98425.1969,9002,8807,0,9002,,,,,,,,,,,,,
+6850,"NAD83(2011) / Oregon Pendleton-La Grande zone (m)",9001,6318,6773,9807,1,0,4499,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,30000,9001,8807,0,9001,,,,,,,,,,,,,
+6851,"NAD83(2011) / Oregon Pendleton-La Grande zone (ft)",9002,6318,6774,9807,1,0,4495,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,98425.1969,9002,8807,0,9002,,,,,,,,,,,,,
+6852,"NAD83(CORS96) / Oregon Portland zone (m)",9001,6783,6775,9801,1,0,4499,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,100000,9001,8807,50000,9001,,,,,,,,,,,,,
+6853,"NAD83(CORS96) / Oregon Portland zone (ft)",9002,6783,6776,9801,1,0,4495,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,328083.9895,9002,8807,164041.9948,9002,,,,,,,,,,,,,
+6854,"NAD83(2011) / Oregon Portland zone (m)",9001,6318,6775,9801,1,0,4499,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,100000,9001,8807,50000,9001,,,,,,,,,,,,,
+6855,"NAD83(2011) / Oregon Portland zone (ft)",9002,6318,6776,9801,1,0,4495,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,328083.9895,9002,8807,164041.9948,9002,,,,,,,,,,,,,
+6856,"NAD83(CORS96) / Oregon Salem zone (m)",9001,6783,6777,9807,1,0,4499,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6857,"NAD83(CORS96) / Oregon Salem zone (ft)",9002,6783,6778,9807,1,0,4495,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6858,"NAD83(2011) / Oregon Salem zone (m)",9001,6318,6777,9807,1,0,4499,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,50000,9001,8807,0,9001,,,,,,,,,,,,,
+6859,"NAD83(2011) / Oregon Salem zone (ft)",9002,6318,6778,9807,1,0,4495,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,164041.9948,9002,8807,0,9002,,,,,,,,,,,,,
+6860,"NAD83(CORS96) / Oregon Santiam Pass zone (m)",9001,6783,6779,9807,1,0,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6861,"NAD83(CORS96) / Oregon Santiam Pass zone (ft)",9002,6783,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,,
+6862,"NAD83(2011) / Oregon Santiam Pass zone (m)",9001,6318,6779,9807,1,0,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+6863,"NAD83(2011) / Oregon Santiam Pass zone (ft)",9002,6318,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,,
+6867,"NAD83(CORS96) / Oregon LCC (m)",9001,6783,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6868,"NAD83(CORS96) / Oregon GIC Lambert (ft)",9002,6783,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,,
+6870,"ETRS89 / Albania TM 2010",9001,4258,6869,9807,1,0,4530,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6875,"RDN2008 / Italy zone (N-E)",9001,6706,6877,9807,1,0,4500,8801,0,9102,8802,12,9102,8805,0.9985,9201,8806,7000000,9001,8807,0,9001,,,,,,,,,,,,,
+6876,"RDN2008 / Zone 12 (N-E)",9001,6706,6878,9807,1,0,4500,8801,0,9102,8802,12,9102,8805,1,9201,8806,3000000,9001,8807,0,9001,,,,,,,,,,,,,
+6879,"NAD83(2011) / Wisconsin Central",9001,6318,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+6880,"NAD83(2011) / Nebraska (ftUS)",9003,6318,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+6884,"NAD83(CORS96) / Oregon North",9001,6783,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+6885,"NAD83(CORS96) / Oregon North (ft)",9002,6783,15351,9802,1,0,4495,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,8202099.738,9002,8827,0,9002,,,,,,,,,,
+6886,"NAD83(CORS96) / Oregon South",9001,6783,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,,
+6887,"NAD83(CORS96) / Oregon South (ft)",9002,6783,15352,9802,1,0,4495,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,4921259.843,9002,8827,0,9002,,,,,,,,,,
+6915,"South East Island 1943 / UTM zone 40N",9001,6892,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+6922,"NAD83 / Kansas LCC",9001,4269,6920,9802,1,0,4499,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6923,"NAD83 / Kansas LCC (ftUS)",9003,4269,6921,9802,1,0,4497,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+6924,"NAD83(2011) / Kansas LCC",9001,6318,6920,9802,1,0,4499,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+6925,"NAD83(2011) / Kansas LCC (ftUS)",9003,6318,6921,9802,1,0,4497,8821,36,9110,8822,-98.15,9110,8823,39.3,9110,8824,37.3,9110,8826,1312333.3333,9003,8827,0,9003,,,,,,,,,,
+6931,"WGS 84 / NSIDC EASE-Grid 2.0 North",9001,4326,6929,9820,1,0,4469,8801,90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+6932,"WGS 84 / NSIDC EASE-Grid 2.0 South",9001,4326,6930,9820,1,0,4470,8801,-90,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+6933,"WGS 84 / NSIDC EASE-Grid 2.0 Global",9001,4326,6928,9835,1,0,4499,8802,0,9102,8806,0,9001,8807,0,9001,8823,30,9102,,,,,,,,,,,,,,,,
+6956,"VN-2000 / TM-3 zone 481",9001,4756,6952,9807,1,0,4400,8801,0,9102,8802,102,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,,
+6957,"VN-2000 / TM-3 zone 482",9001,4756,6953,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,,
+6958,"VN-2000 / TM-3 zone 491",9001,4756,6954,9807,1,0,4400,8801,0,9102,8802,108,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,,
+6959,"VN-2000 / TM-3 Da Nang zone",9001,4756,6955,9807,1,0,4400,8801,0,9110,8802,107.45,9110,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,,,,,,,,
+6962,"ETRS89 / Albania LCC 2010",9001,4258,6961,9802,1,0,4530,8821,41,9102,8822,20,9102,8823,39,9102,8824,43,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+6966,"NAD27 / Michigan North",9003,4267,6965,1051,1,0,4497,1038,1.0000382,9201,8821,44.47,9110,8822,-87,9110,8823,45.29,9110,8824,47.05,9110,8826,2000000,9003,8827,0,9003,,,,,,,
+6984,Israeli Grid 05,9001,6983,18204,9807,1,0,4400,8801,31.4403817,9110,8802,35.1216261,9110,8805,1.0000067,9201,8806,219529.584,9001,8807,626907.39,9001,,,,,,,,,,,,,
+6991,"Israeli Grid 05/12",9001,6990,18204,9807,1,0,4400,8801,31.4403817,9110,8802,35.1216261,9110,8805,1.0000067,9201,8806,219529.584,9001,8807,626907.39,9001,,,,,,,,,,,,,
+6996,"NAD83(2011) / San Francisco CS13",9001,6318,6994,9807,1,1,4499,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9202,8806,48000,9001,8807,24000,9001,,,,,,,,,,,,,
+6997,"NAD83(2011) / San Francisco CS13 (ftUS)",9003,6318,6995,9807,1,1,4497,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9202,8806,157480,9003,8807,78740,9003,,,,,,,,,,,,,
+7005,"Nahrwan 1934 / UTM zone 37N",9001,4744,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7006,"Nahrwan 1934 / UTM zone 38N",9001,4744,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7007,"Nahrwan 1934 / UTM zone 39N",9001,4744,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7057,"NAD83(2011) / IaRCS zone 1",9003,6318,7043,9801,1,0,4497,8801,43.12,9110,8802,-95.15,9110,8805,1.000052,9201,8806,11500000,9003,8807,9600000,9003,,,,,,,,,,,,,
+7058,"NAD83(2011) / IaRCS zone 2",9003,6318,7044,9801,1,0,4497,8801,43.1,9110,8802,-92.45,9110,8805,1.000043,9201,8806,12500000,9003,8807,9800000,9003,,,,,,,,,,,,,
+7059,"NAD83(2011) / IaRCS zone 3",9003,6318,7045,9807,1,0,4497,8801,40.15,9110,8802,-91.12,9110,8805,1.000035,9201,8806,13500000,9003,8807,8300000,9003,,,,,,,,,,,,,
+7060,"NAD83(2011) / IaRCS zone 4",9003,6318,7046,9801,1,0,4497,8801,42.32,9110,8802,-94.5,9110,8805,1.000045,9201,8806,14500000,9003,8807,8600000,9003,,,,,,,,,,,,,
+7061,"NAD83(2011) / IaRCS zone 5",9003,6318,7047,9801,1,0,4497,8801,42.39,9110,8802,-92.15,9110,8805,1.000032,9201,8806,15500000,9003,8807,8900000,9003,,,,,,,,,,,,,
+7062,"NAD83(2011) / IaRCS zone 6",9003,6318,7048,9807,1,0,4497,8801,40.15,9110,8802,-95.44,9110,8805,1.000039,9201,8806,16500000,9003,8807,6600000,9003,,,,,,,,,,,,,
+7063,"NAD83(2011) / IaRCS zone 7",9003,6318,7049,9807,1,0,4497,8801,40.15,9110,8802,-94.38,9110,8805,1.000045,9201,8806,17500000,9003,8807,6800000,9003,,,,,,,,,,,,,
+7064,"NAD83(2011) / IaRCS zone 8",9003,6318,7050,9807,1,0,4497,8801,40.15,9110,8802,-93.43,9110,8805,1.000033,9201,8806,18500000,9003,8807,7000000,9003,,,,,,,,,,,,,
+7065,"NAD83(2011) / IaRCS zone 9",9003,6318,7051,9807,1,0,4497,8801,40.15,9110,8802,-92.49,9110,8805,1.000027,9201,8806,19500000,9003,8807,7200000,9003,,,,,,,,,,,,,
+7066,"NAD83(2011) / IaRCS zone 10",9003,6318,7052,9801,1,0,4497,8801,41.5,9110,8802,-91.4,9110,8805,1.00002,9201,8806,20500000,9003,8807,8000000,9003,,,,,,,,,,,,,
+7067,"NAD83(2011) / IaRCS zone 11",9003,6318,7053,9807,1,0,4497,8801,40.15,9110,8802,-90.32,9110,8805,1.000027,9201,8806,21500000,9003,8807,7600000,9003,,,,,,,,,,,,,
+7068,"NAD83(2011) / IaRCS zone 12",9003,6318,7054,9801,1,0,4497,8801,40.55,9110,8802,-93.45,9110,8805,1.000037,9201,8806,22500000,9003,8807,6200000,9003,,,,,,,,,,,,,
+7069,"NAD83(2011) / IaRCS zone 13",9003,6318,7055,9807,1,0,4497,8801,40.15,9110,8802,-91.55,9110,8805,1.00002,9201,8806,23500000,9003,8807,6400000,9003,,,,,,,,,,,,,
+7070,"NAD83(2011) / IaRCS zone 14",9003,6318,7056,9807,1,0,4497,8801,40.15,9110,8802,-91.15,9110,8805,1.000018,9201,8806,24500000,9003,8807,6200000,9003,,,,,,,,,,,,,
+7074,"RGTAAF07 / UTM zone 37S",9001,7073,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7075,"RGTAAF07 / UTM zone 38S",9001,7073,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7076,"RGTAAF07 / UTM zone 39S",9001,7073,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7077,"RGTAAF07 / UTM zone 40S",9001,7073,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7078,"RGTAAF07 / UTM zone 41S",9001,7073,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7079,"RGTAAF07 / UTM zone 42S",9001,7073,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7080,"RGTAAF07 / UTM zone 43S",9001,7073,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7081,"RGTAAF07 / UTM zone 44S",9001,7073,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7082,"RGTAAF07 / Terre Adelie Polar Stereographic",9001,7073,19983,9830,1,0,4400,8826,300000,9001,8827,200000,9001,8832,-67,9102,8833,140,9102,,,,,,,,,,,,,,,,
+7109,"NAD83(2011) / RMTCRS St Mary (m)",9001,6318,7089,9807,1,0,4499,8801,48.3,9110,8802,-112.3,9110,8805,1.00016,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+7110,"NAD83(2011) / RMTCRS Blackfeet (m)",9001,6318,7091,9807,1,0,4499,8801,48,9110,8802,-112.3,9110,8805,1.00019,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,,
+7111,"NAD83(2011) / RMTCRS Milk River (m)",9001,6318,7093,9801,1,0,4499,8801,48.3,9110,8802,-111,9110,8805,1.000145,9201,8806,150000,9001,8807,200000,9001,,,,,,,,,,,,,
+7112,"NAD83(2011) / RMTCRS Fort Belknap (m)",9001,6318,7095,9801,1,0,4499,8801,48.3,9110,8802,-108.3,9110,8805,1.00012,9201,8806,200000,9001,8807,150000,9001,,,,,,,,,,,,,
+7113,"NAD83(2011) / RMTCRS Fort Peck Assiniboine (m)",9001,6318,7097,9801,1,0,4499,8801,48.2,9110,8802,-105.3,9110,8805,1.00012,9201,8806,200000,9001,8807,100000,9001,,,,,,,,,,,,,
+7114,"NAD83(2011) / RMTCRS Fort Peck Sioux (m)",9001,6318,7099,9801,1,0,4499,8801,48.2,9110,8802,-105.3,9110,8805,1.00009,9201,8806,100000,9001,8807,50000,9001,,,,,,,,,,,,,
+7115,"NAD83(2011) / RMTCRS Crow (m)",9001,6318,7101,9807,1,0,4499,8801,44.45,9110,8802,-107.45,9110,8805,1.000148,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+7116,"NAD83(2011) / RMTCRS Bobcat (m)",9001,6318,7103,9801,1,0,4499,8801,46.15,9110,8802,-111.15,9110,8805,1.000185,9201,8806,100000,9001,8807,100000,9001,,,,,,,,,,,,,
+7117,"NAD83(2011) / RMTCRS Billings (m)",9001,6318,7105,9801,1,0,4499,8801,45.47,9110,8802,-108.25,9110,8805,1.0001515,9201,8806,200000,9001,8807,50000,9001,,,,,,,,,,,,,
+7118,"NAD83(2011) / RMTCRS Wind River (m)",9001,6318,7107,9807,1,0,4499,8801,42.4,9110,8802,-108.2,9110,8805,1.00024,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,,
+7119,"NAD83(2011) / RMTCRS St Mary (ft)",9002,6318,7090,9807,1,0,4495,8801,48.3,9110,8802,-112.3,9110,8805,1.00016,9201,8806,492125.9843,9002,8807,0,9002,,,,,,,,,,,,,
+7120,"NAD83(2011) / RMTCRS Blackfeet (ft)",9002,6318,7092,9807,1,0,4495,8801,48,9110,8802,-112.3,9110,8805,1.00019,9201,8806,328083.9895,9002,8807,0,9002,,,,,,,,,,,,,
+7121,"NAD83(2011) / RMTCRS Milk River (ft)",9002,6318,7094,9801,1,0,4495,8801,48.3,9110,8802,-111,9110,8805,1.000145,9201,8806,492125.9843,9002,8807,656167.979,9002,,,,,,,,,,,,,
+7122,"NAD83(2011) / RMTCRS Fort Belknap (ft)",9002,6318,7096,9801,1,0,4495,8801,48.3,9110,8802,-108.3,9110,8805,1.00012,9201,8806,656167.979,9002,8807,492125.9843,9002,,,,,,,,,,,,,
+7123,"NAD83(2011) / RMTCRS Fort Peck Assiniboine (ft)",9002,6318,7098,9801,1,0,4495,8801,48.2,9110,8802,-105.3,9110,8805,1.00012,9201,8806,656167.979,9002,8807,328083.9895,9002,,,,,,,,,,,,,
+7124,"NAD83(2011) / RMTCRS Fort Peck Sioux (ft)",9002,6318,7100,9801,1,0,4495,8801,48.2,9110,8802,-105.3,9110,8805,1.00009,9201,8806,328083.9895,9002,8807,164041.9938,9002,,,,,,,,,,,,,
+7125,"NAD83(2011) / RMTCRS Crow (ft)",9002,6318,7102,9807,1,0,4495,8801,44.45,9110,8802,-107.45,9110,8805,1.000148,9201,8806,656167.979,9002,8807,0,9002,,,,,,,,,,,,,
+7126,"NAD83(2011) / RMTCRS Bobcat (ft)",9002,6318,7104,9801,1,0,4495,8801,46.15,9110,8802,-111.15,9110,8805,1.000185,9201,8806,328083.9895,9002,8807,328083.9895,9002,,,,,,,,,,,,,
+7127,"NAD83(2011) / RMTCRS Billings (ft)",9002,6318,7106,9801,1,0,4495,8801,45.47,9110,8802,-108.25,9110,8805,1.0001515,9201,8806,656167.979,9002,8807,164041.9948,9002,,,,,,,,,,,,,
+7128,"NAD83(2011) / RMTCRS Wind River (ftUS)",9003,6318,7108,9807,1,0,4497,8801,42.4,9110,8802,-108.2,9110,8805,1.00024,9201,8806,328083.3333,9003,8807,0,9003,,,,,,,,,,,,,
+7131,"NAD83(2011) / San Francisco CS13",9001,6318,7129,9807,1,0,4499,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9201,8806,48000,9001,8807,24000,9001,,,,,,,,,,,,,
+7132,"NAD83(2011) / San Francisco CS13 (ftUS)",9003,6318,7130,9807,1,0,4497,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9201,8806,157480,9003,8807,78740,9003,,,,,,,,,,,,,
+7142,"Palestine 1923 / Palestine Grid modified",9001,4281,7141,9807,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8805,1,9201,8806,170251.555,9001,8807,126867.909,9001,,,,,,,,,,,,,
+7257,"NAD83(2011) / InGCS Adams (m)",9001,6318,7143,9807,1,0,4499,8801,40.33,9110,8802,-84.57,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7258,"NAD83(2011) / InGCS Adams (ftUS)",9003,6318,7144,9807,1,0,4497,8801,40.33,9110,8802,-84.57,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7259,"NAD83(2011) / InGCS Allen (m)",9001,6318,7145,9807,1,0,4499,8801,40.54,9110,8802,-85.03,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7260,"NAD83(2011) / InGCS Allen (ftUS)",9003,6318,7146,9807,1,0,4497,8801,40.54,9110,8802,-85.03,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7261,"NAD83(2011) / InGCS Bartholomew (m)",9001,6318,7147,9807,1,0,4499,8801,39,9110,8802,-85.51,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7262,"NAD83(2011) / InGCS Bartholomew (ftUS)",9003,6318,7148,9807,1,0,4497,8801,39,9110,8802,-85.51,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7263,"NAD83(2011) / InGCS Benton (m)",9001,6318,7149,9807,1,0,4499,8801,40.27,9110,8802,-87.18,9110,8805,1.000029,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7264,"NAD83(2011) / InGCS Benton (ftUS)",9003,6318,7150,9807,1,0,4497,8801,40.27,9110,8802,-87.18,9110,8805,1.000029,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7265,"NAD83(2011) / InGCS Blackford-Delaware (m)",9001,6318,7151,9807,1,0,4499,8801,40.03,9110,8802,-85.24,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7266,"NAD83(2011) / InGCS Blackford-Delaware (ftUS)",9003,6318,7152,9807,1,0,4497,8801,40.03,9110,8802,-85.24,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7267,"NAD83(2011) / InGCS Boone-Hendricks (m)",9001,6318,7153,9807,1,0,4499,8801,39.36,9110,8802,-86.3,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7268,"NAD83(2011) / InGCS Boone-Hendricks (ftUS)",9003,6318,7154,9807,1,0,4497,8801,39.36,9110,8802,-86.3,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7269,"NAD83(2011) / InGCS Brown (m)",9001,6318,7155,9807,1,0,4499,8801,39,9110,8802,-86.18,9110,8805,1.00003,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7270,"NAD83(2011) / InGCS Brown (ftUS)",9003,6318,7156,9807,1,0,4497,8801,39,9110,8802,-86.18,9110,8805,1.00003,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7271,"NAD83(2011) / InGCS Carroll (m)",9001,6318,7157,9807,1,0,4499,8801,40.24,9110,8802,-86.39,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7272,"NAD83(2011) / InGCS Carroll (ftUS)",9003,6318,7158,9807,1,0,4497,8801,40.24,9110,8802,-86.39,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7273,"NAD83(2011) / InGCS Cass (m)",9001,6318,7159,9807,1,0,4499,8801,40.33,9110,8802,-86.24,9110,8805,1.000028,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7274,"NAD83(2011) / InGCS Cass (ftUS)",9003,6318,7160,9807,1,0,4497,8801,40.33,9110,8802,-86.24,9110,8805,1.000028,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7275,"NAD83(2011) / InGCS Clark-Floyd-Scott (m)",9001,6318,7161,9807,1,0,4499,8801,38.09,9110,8802,-85.36,9110,8805,1.000021,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7276,"NAD83(2011) / InGCS Clark-Floyd-Scott (ftUS)",9003,6318,7162,9807,1,0,4497,8801,38.09,9110,8802,-85.36,9110,8805,1.000021,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7277,"NAD83(2011) / InGCS Clay (m)",9001,6318,7163,9807,1,0,4499,8801,39.09,9110,8802,-87.09,9110,8805,1.000024,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7278,"NAD83(2011) / InGCS Clay (ftUS)",9003,6318,7164,9807,1,0,4497,8801,39.09,9110,8802,-87.09,9110,8805,1.000024,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7279,"NAD83(2011) / InGCS Clinton (m)",9001,6318,7165,9807,1,0,4499,8801,40.09,9110,8802,-86.36,9110,8805,1.000032,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7280,"NAD83(2011) / InGCS Clinton (ftUS)",9003,6318,7166,9807,1,0,4497,8801,40.09,9110,8802,-86.36,9110,8805,1.000032,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7281,"NAD83(2011) / InGCS Crawford-Lawrence-Orange (m)",9001,6318,7167,9807,1,0,4499,8801,38.06,9110,8802,-86.3,9110,8805,1.000025,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7282,"NAD83(2011) / InGCS Crawford-Lawrence-Orange (ftUS)",9003,6318,7168,9807,1,0,4497,8801,38.06,9110,8802,-86.3,9110,8805,1.000025,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7283,"NAD83(2011) / InGCS Daviess-Greene (m)",9001,6318,7169,9807,1,0,4499,8801,38.27,9110,8802,-87.06,9110,8805,1.000018,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7284,"NAD83(2011) / InGCS Daviess-Greene (ftUS)",9003,6318,7170,9807,1,0,4497,8801,38.27,9110,8802,-87.06,9110,8805,1.000018,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7285,"NAD83(2011) / InGCS Dearborn-Ohio-Switzerland (m)",9001,6318,7171,9807,1,0,4499,8801,38.39,9110,8802,-84.54,9110,8805,1.000029,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7286,"NAD83(2011) / InGCS Dearborn-Ohio-Switzerland (ftUS)",9003,6318,7172,9807,1,0,4497,8801,38.39,9110,8802,-84.54,9110,8805,1.000029,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7287,"NAD83(2011) / InGCS Decatur-Rush (m)",9001,6318,7173,9807,1,0,4499,8801,39.06,9110,8802,-85.39,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7288,"NAD83(2011) / InGCS Decatur-Rush (ftUS)",9003,6318,7174,9807,1,0,4497,8801,39.06,9110,8802,-85.39,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7289,"NAD83(2011) / InGCS DeKalb (m)",9001,6318,7175,9807,1,0,4499,8801,41.15,9110,8802,-84.57,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7290,"NAD83(2011) / InGCS DeKalb (ftUS)",9003,6318,7176,9807,1,0,4497,8801,41.15,9110,8802,-84.57,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7291,"NAD83(2011) / InGCS Dubois-Martin (m)",9001,6318,7177,9807,1,0,4499,8801,38.12,9110,8802,-86.57,9110,8805,1.00002,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7292,"NAD83(2011) / InGCS Dubois-Martin (ftUS)",9003,6318,7178,9807,1,0,4497,8801,38.12,9110,8802,-86.57,9110,8805,1.00002,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7293,"NAD83(2011) / InGCS Elkhart-Kosciusko-Wabash (m)",9001,6318,7179,9807,1,0,4499,8801,40.39,9110,8802,-85.51,9110,8805,1.000033,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7294,"NAD83(2011) / InGCS Elkhart-Kosciusko-Wabash (ftUS)",9003,6318,7180,9807,1,0,4497,8801,40.39,9110,8802,-85.51,9110,8805,1.000033,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7295,"NAD83(2011) / InGCS Fayette-Franklin-Union (m)",9001,6318,7181,9807,1,0,4499,8801,39.15,9110,8802,-85.03,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7296,"NAD83(2011) / InGCS Fayette-Franklin-Union (ftUS)",9003,6318,7182,9807,1,0,4497,8801,39.15,9110,8802,-85.03,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7297,"NAD83(2011) / InGCS Fountain-Warren (m)",9001,6318,7183,9807,1,0,4499,8801,39.57,9110,8802,-87.18,9110,8805,1.000025,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7298,"NAD83(2011) / InGCS Fountain-Warren (ftUS)",9003,6318,7184,9807,1,0,4497,8801,39.57,9110,8802,-87.18,9110,8805,1.000025,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7299,"NAD83(2011) / InGCS Fulton-Marshall-St. Joseph (m)",9001,6318,7185,9807,1,0,4499,8801,40.54,9110,8802,-86.18,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7300,"NAD83(2011) / InGCS Fulton-Marshall-St. Joseph (ftUS)",9003,6318,7186,9807,1,0,4497,8801,40.54,9110,8802,-86.18,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7301,"NAD83(2011) / InGCS Gibson (m)",9001,6318,7187,9807,1,0,4499,8801,38.09,9110,8802,-87.39,9110,8805,1.000013,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7302,"NAD83(2011) / InGCS Gibson (ftUS)",9003,6318,7188,9807,1,0,4497,8801,38.09,9110,8802,-87.39,9110,8805,1.000013,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7303,"NAD83(2011) / InGCS Grant (m)",9001,6318,7189,9807,1,0,4499,8801,40.21,9110,8802,-85.42,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7304,"NAD83(2011) / InGCS Grant (ftUS)",9003,6318,7190,9807,1,0,4497,8801,40.21,9110,8802,-85.42,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7305,"NAD83(2011) / InGCS Hamilton-Tipton (m)",9001,6318,7191,9807,1,0,4499,8801,39.54,9110,8802,-86,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7306,"NAD83(2011) / InGCS Hamilton-Tipton (ftUS)",9003,6318,7192,9807,1,0,4497,8801,39.54,9110,8802,-86,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7307,"NAD83(2011) / InGCS Hancock-Madison (m)",9001,6318,7193,9807,1,0,4499,8801,39.39,9110,8802,-85.48,9110,8805,1.000036,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7308,"NAD83(2011) / InGCS Hancock-Madison (ftUS)",9003,6318,7194,9807,1,0,4497,8801,39.39,9110,8802,-85.48,9110,8805,1.000036,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7309,"NAD83(2011) / InGCS Harrison-Washington (m)",9001,6318,7195,9807,1,0,4499,8801,37.57,9110,8802,-86.09,9110,8805,1.000027,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7310,"NAD83(2011) / InGCS Harrison-Washington (ftUS)",9003,6318,7196,9807,1,0,4497,8801,37.57,9110,8802,-86.09,9110,8805,1.000027,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7311,"NAD83(2011) / InGCS Henry (m)",9001,6318,7197,9807,1,0,4499,8801,39.45,9110,8802,-85.27,9110,8805,1.000043,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7312,"NAD83(2011) / InGCS Henry (ftUS)",9003,6318,7198,9807,1,0,4497,8801,39.45,9110,8802,-85.27,9110,8805,1.000043,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7313,"NAD83(2011) / InGCS Howard-Miami (m)",9001,6318,7199,9807,1,0,4499,8801,40.21,9110,8802,-86.09,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7314,"NAD83(2011) / InGCS Howard-Miami (ftUS)",9003,6318,7200,9807,1,0,4497,8801,40.21,9110,8802,-86.09,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7315,"NAD83(2011) / InGCS Huntington-Whitley (m)",9001,6318,7201,9807,1,0,4499,8801,40.39,9110,8802,-85.3,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7316,"NAD83(2011) / InGCS Huntington-Whitley (ftUS)",9003,6318,7202,9807,1,0,4497,8801,40.39,9110,8802,-85.3,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7317,"NAD83(2011) / InGCS Jackson (m)",9001,6318,7203,9807,1,0,4499,8801,38.42,9110,8802,-85.57,9110,8805,1.000022,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7318,"NAD83(2011) / InGCS Jackson (ftUS)",9003,6318,7204,9807,1,0,4497,8801,38.42,9110,8802,-85.57,9110,8805,1.000022,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7319,"NAD83(2011) / InGCS Jasper-Porter (m)",9001,6318,7205,9807,1,0,4499,8801,40.42,9110,8802,-87.06,9110,8805,1.000027,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7320,"NAD83(2011) / InGCS Jasper-Porter (ftUS)",9003,6318,7206,9807,1,0,4497,8801,40.42,9110,8802,-87.06,9110,8805,1.000027,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7321,"NAD83(2011) / InGCS Jay (m)",9001,6318,7207,9807,1,0,4499,8801,40.18,9110,8802,-85,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7322,"NAD83(2011) / InGCS Jay (ftUS)",9003,6318,7208,9807,1,0,4497,8801,40.18,9110,8802,-85,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7323,"NAD83(2011) / InGCS Jefferson (m)",9001,6318,7209,9807,1,0,4499,8801,38.33,9110,8802,-85.21,9110,8805,1.000028,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7324,"NAD83(2011) / InGCS Jefferson (ftUS)",9003,6318,7210,9807,1,0,4497,8801,38.33,9110,8802,-85.21,9110,8805,1.000028,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7325,"NAD83(2011) / InGCS Jennings (m)",9001,6318,7211,9807,1,0,4499,8801,38.48,9110,8802,-85.48,9110,8805,1.000025,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7326,"NAD83(2011) / InGCS Jennings (ftUS)",9003,6318,7212,9807,1,0,4497,8801,38.48,9110,8802,-85.48,9110,8805,1.000025,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7327,"NAD83(2011) / InGCS Johnson-Marion (m)",9001,6318,7213,9807,1,0,4499,8801,39.18,9110,8802,-86.09,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7328,"NAD83(2011) / InGCS Johnson-Marion (ftUS)",9003,6318,7214,9807,1,0,4497,8801,39.18,9110,8802,-86.09,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7329,"NAD83(2011) / InGCS Knox (m)",9001,6318,7215,9807,1,0,4499,8801,38.24,9110,8802,-87.27,9110,8805,1.000015,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7330,"NAD83(2011) / InGCS Knox (ftUS)",9003,6318,7216,9807,1,0,4497,8801,38.24,9110,8802,-87.27,9110,8805,1.000015,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7331,"NAD83(2011) / InGCS LaGrange-Noble (m)",9001,6318,7217,9807,1,0,4499,8801,41.15,9110,8802,-85.27,9110,8805,1.000037,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7332,"NAD83(2011) / InGCS LaGrange-Noble (ftUS)",9003,6318,7218,9807,1,0,4497,8801,41.15,9110,8802,-85.27,9110,8805,1.000037,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7333,"NAD83(2011) / InGCS Lake-Newton (m)",9001,6318,7219,9807,1,0,4499,8801,40.42,9110,8802,-87.24,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7334,"NAD83(2011) / InGCS Lake-Newton (ftUS)",9003,6318,7220,9807,1,0,4497,8801,40.42,9110,8802,-87.24,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7335,"NAD83(2011) / InGCS LaPorte-Pulaski-Starke (m)",9001,6318,7221,9807,1,0,4499,8801,40.54,9110,8802,-86.45,9110,8805,1.000027,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7336,"NAD83(2011) / InGCS LaPorte-Pulaski-Starke (ftUS)",9003,6318,7222,9807,1,0,4497,8801,40.54,9110,8802,-86.45,9110,8805,1.000027,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7337,"NAD83(2011) / InGCS Monroe-Morgan (m)",9001,6318,7223,9807,1,0,4499,8801,38.57,9110,8802,-86.3,9110,8805,1.000028,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7338,"NAD83(2011) / InGCS Monroe-Morgan (ftUS)",9003,6318,7224,9807,1,0,4497,8801,38.57,9110,8802,-86.3,9110,8805,1.000028,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7339,"NAD83(2011) / InGCS Montgomery-Putnam (m)",9001,6318,7225,9807,1,0,4499,8801,39.27,9110,8802,-86.57,9110,8805,1.000031,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7340,"NAD83(2011) / InGCS Montgomery-Putnam (ftUS)",9003,6318,7226,9807,1,0,4497,8801,39.27,9110,8802,-86.57,9110,8805,1.000031,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7341,"NAD83(2011) / InGCS Owen (m)",9001,6318,7227,9807,1,0,4499,8801,39.09,9110,8802,-86.54,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7342,"NAD83(2011) / InGCS Owen (ftUS)",9003,6318,7228,9807,1,0,4497,8801,39.09,9110,8802,-86.54,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7343,"NAD83(2011) / InGCS Parke-Vermillion (m)",9001,6318,7229,9807,1,0,4499,8801,39.36,9110,8802,-87.21,9110,8805,1.000022,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7344,"NAD83(2011) / InGCS Parke-Vermillion (ftUS)",9003,6318,7230,9807,1,0,4497,8801,39.36,9110,8802,-87.21,9110,8805,1.000022,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7345,"NAD83(2011) / InGCS Perry (m)",9001,6318,7231,9807,1,0,4499,8801,37.48,9110,8802,-86.42,9110,8805,1.00002,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7346,"NAD83(2011) / InGCS Perry (ftUS)",9003,6318,7232,9807,1,0,4497,8801,37.48,9110,8802,-86.42,9110,8805,1.00002,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7347,"NAD83(2011) / InGCS Pike-Warrick (m)",9001,6318,7233,9807,1,0,4499,8801,37.51,9110,8802,-87.18,9110,8805,1.000015,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7348,"NAD83(2011) / InGCS Pike-Warrick (ftUS)",9003,6318,7234,9807,1,0,4497,8801,37.51,9110,8802,-87.18,9110,8805,1.000015,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7349,"NAD83(2011) / InGCS Posey (m)",9001,6318,7235,9807,1,0,4499,8801,37.45,9110,8802,-87.57,9110,8805,1.000013,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7350,"NAD83(2011) / InGCS Posey (ftUS)",9003,6318,7236,9807,1,0,4497,8801,37.45,9110,8802,-87.57,9110,8805,1.000013,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7351,"NAD83(2011) / InGCS Randolph-Wayne (m)",9001,6318,7237,9807,1,0,4499,8801,39.42,9110,8802,-85.03,9110,8805,1.000044,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7352,"NAD83(2011) / InGCS Randolph-Wayne (ftUS)",9003,6318,7238,9807,1,0,4497,8801,39.42,9110,8802,-85.03,9110,8805,1.000044,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7353,"NAD83(2011) / InGCS Ripley (m)",9001,6318,7239,9807,1,0,4499,8801,38.54,9110,8802,-85.18,9110,8805,1.000038,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7354,"NAD83(2011) / InGCS Ripley (ftUS)",9003,6318,7240,9807,1,0,4497,8801,38.54,9110,8802,-85.18,9110,8805,1.000038,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7355,"NAD83(2011) / InGCS Shelby (m)",9001,6318,7241,9807,1,0,4499,8801,39.18,9110,8802,-85.54,9110,8805,1.00003,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7356,"NAD83(2011) / InGCS Shelby (ftUS)",9003,6318,7242,9807,1,0,4497,8801,39.18,9110,8802,-85.54,9110,8805,1.00003,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7357,"NAD83(2011) / InGCS Spencer (m)",9001,6318,7243,9807,1,0,4499,8801,37.45,9110,8802,-87.03,9110,8805,1.000014,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7358,"NAD83(2011) / InGCS Spencer (ftUS)",9003,6318,7244,9807,1,0,4497,8801,37.45,9110,8802,-87.03,9110,8805,1.000014,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7359,"NAD83(2011) / InGCS Steuben (m)",9001,6318,7245,9807,1,0,4499,8801,41.3,9110,8802,-85,9110,8805,1.000041,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7360,"NAD83(2011) / InGCS Steuben (ftUS)",9003,6318,7246,9807,1,0,4497,8801,41.3,9110,8802,-85,9110,8805,1.000041,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7361,"NAD83(2011) / InGCS Sullivan (m)",9001,6318,7247,9807,1,0,4499,8801,38.54,9110,8802,-87.3,9110,8805,1.000017,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7362,"NAD83(2011) / InGCS Sullivan (ftUS)",9003,6318,7248,9807,1,0,4497,8801,38.54,9110,8802,-87.3,9110,8805,1.000017,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7363,"NAD83(2011) / InGCS Tippecanoe-White (m)",9001,6318,7249,9807,1,0,4499,8801,40.12,9110,8802,-86.54,9110,8805,1.000026,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7364,"NAD83(2011) / InGCS Tippecanoe-White (ftUS)",9003,6318,7250,9807,1,0,4497,8801,40.12,9110,8802,-86.54,9110,8805,1.000026,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7365,"NAD83(2011) / InGCS Vanderburgh (m)",9001,6318,7251,9807,1,0,4499,8801,37.48,9110,8802,-87.33,9110,8805,1.000015,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7366,"NAD83(2011) / InGCS Vanderburgh (ftUS)",9003,6318,7252,9807,1,0,4497,8801,37.48,9110,8802,-87.33,9110,8805,1.000015,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7367,"NAD83(2011) / InGCS Vigo (m)",9001,6318,7253,9807,1,0,4499,8801,39.15,9110,8802,-87.27,9110,8805,1.00002,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7368,"NAD83(2011) / InGCS Vigo (ftUS)",9003,6318,7254,9807,1,0,4497,8801,39.15,9110,8802,-87.27,9110,8805,1.00002,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7369,"NAD83(2011) / InGCS Wells (m)",9001,6318,7255,9807,1,0,4499,8801,40.33,9110,8802,-85.15,9110,8805,1.000034,9201,8806,240000,9001,8807,36000,9001,,,,,,,,,,,,,
+7370,"NAD83(2011) / InGCS Wells (ftUS)",9003,6318,7256,9807,1,0,4497,8801,40.33,9110,8802,-85.15,9110,8805,1.000034,9201,8806,787400,9003,8807,118110,9003,,,,,,,,,,,,,
+7374,"ONGD14 / UTM zone 39N",9001,7373,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7375,"ONGD14 / UTM zone 40N",9001,7373,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7376,"ONGD14 / UTM zone 41N",9001,7373,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7528,"NAD83(2011) / WISCRS Adams and Juneau (m)",9001,6318,7484,9807,1,0,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,,,,,,,,
+7529,"NAD83(2011) / WISCRS Ashland (m)",9001,6318,7378,9807,1,0,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,,,,,,,,
+7530,"NAD83(2011) / WISCRS Barron (m)",9001,6318,7426,9807,1,0,4499,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,93150,9001,8807,0.0029,9001,,,,,,,,,,,,,
+7531,"NAD83(2011) / WISCRS Bayfield (m)",9001,6318,7380,9801,1,0,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,,,,,,,,
+7532,"NAD83(2011) / WISCRS Brown (m)",9001,6318,7428,9807,1,0,4499,8801,43,9102,8802,-88,9102,8805,1.00002,9201,8806,31600,9001,8807,4600,9001,,,,,,,,,,,,,
+7533,"NAD83(2011) / WISCRS Buffalo (m)",9001,6318,7430,9807,1,0,4499,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,175260.3502,9001,8807,0.0048,9001,,,,,,,,,,,,,
+7534,"NAD83(2011) / WISCRS Burnett (m)",9001,6318,7382,9801,1,0,4499,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,64008.1276,9001,8807,59445.9043,9001,,,,,,,,,,,,,
+7535,"NAD83(2011) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (m)",9001,6318,7486,9807,1,0,4499,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,244754.8893,9001,8807,0.0049,9001,,,,,,,,,,,,,
+7536,"NAD83(2011) / WISCRS Chippewa (m)",9001,6318,7432,9801,1,0,4499,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,60045.72,9001,8807,44091.4346,9001,,,,,,,,,,,,,
+7537,"NAD83(2011) / WISCRS Clark (m)",9001,6318,7434,9807,1,0,4499,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,199949.1989,9001,8807,0.0086,9001,,,,,,,,,,,,,
+7538,"NAD83(2011) / WISCRS Columbia (m)",9001,6318,7488,9801,1,0,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,,,,,,,,
+7539,"NAD83(2011) / WISCRS Crawford (m)",9001,6318,7490,9801,1,0,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,,,,,,,,
+7540,"NAD83(2011) / WISCRS Dane (m)",9001,6318,7492,9801,1,0,4499,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,247193.2944,9001,8807,146591.9896,9001,,,,,,,,,,,,,
+7541,"NAD83(2011) / WISCRS Dodge and Jefferson (m)",9001,6318,7494,9807,1,0,4499,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,263347.7263,9001,8807,0.0076,9001,,,,,,,,,,,,,
+7542,"NAD83(2011) / WISCRS Door (m)",9001,6318,7436,9807,1,0,4499,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,158801.1176,9001,8807,0.0023,9001,,,,,,,,,,,,,
+7543,"NAD83(2011) / WISCRS Douglas (m)",9001,6318,7384,9807,1,0,4499,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,59131.3183,9001,8807,0.0041,9001,,,,,,,,,,,,,
+7544,"NAD83(2011) / WISCRS Dunn (m)",9001,6318,7438,9807,1,0,4499,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,51816.104,9001,8807,0.003,9001,,,,,,,,,,,,,
+7545,"NAD83(2011) / WISCRS Eau Claire (m)",9001,6318,7440,9801,1,0,4499,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,120091.4402,9001,8807,91687.9239,9001,,,,,,,,,,,,,
+7546,"NAD83(2011) / WISCRS Florence (m)",9001,6318,7386,9807,1,0,4499,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,133502.6683,9001,8807,0.0063,9001,,,,,,,,,,,,,
+7547,"NAD83(2011) / WISCRS Forest (m)",9001,6318,7388,9807,1,0,4499,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,275844.5533,9001,8807,0.0157,9001,,,,,,,,,,,,,
+7548,"NAD83(2011) / WISCRS Grant (m)",9001,6318,7496,9807,1,0,4499,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,242316.4841,9001,8807,0.01,9001,,,,,,,,,,,,,
+7549,"NAD83(2011) / WISCRS Green and Lafayette (m)",9001,6318,7498,9801,1,0,4499,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,170078.7403,9001,8807,45830.2947,9001,,,,,,,,,,,,,
+7550,"NAD83(2011) / WISCRS Green Lake and Marquette (m)",9001,6318,7500,9801,1,0,4499,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,150876.3018,9001,8807,79170.7795,9001,,,,,,,,,,,,,
+7551,"NAD83(2011) / WISCRS Iowa (m)",9001,6318,7502,9807,1,0,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,,,,,,,,
+7552,"NAD83(2011) / WISCRS Iron (m)",9001,6318,7390,9807,1,0,4499,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,220980.4419,9001,8807,0.0085,9001,,,,,,,,,,,,,
+7553,"NAD83(2011) / WISCRS Jackson (m)",9001,6318,7450,9807,1,0,4499,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,27000,9001,8807,25000,9001,,,,,,,,,,,,,
+7554,"NAD83(2011) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (m)",9001,6318,7504,9807,1,0,4499,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,185928.3728,9001,8807,0.0009,9001,,,,,,,,,,,,,
+7555,"NAD83(2011) / WISCRS Kewaunee, Manitowoc and Sheboygan (m)",9001,6318,7506,9807,1,0,4499,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,79857.7614,9001,8807,0.0012,9001,,,,,,,,,,,,,
+7556,"NAD83(2011) / WISCRS La Crosse (m)",9001,6318,7508,9807,1,0,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,,,,,,,,
+7557,"NAD83(2011) / WISCRS Langlade (m)",9001,6318,7452,9801,1,0,4499,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,198425.197,9001,8807,105279.7829,9001,,,,,,,,,,,,,
+7558,"NAD83(2011) / WISCRS Lincoln (m)",9001,6318,7454,9807,1,0,4499,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,116129.0323,9001,8807,0.0058,9001,,,,,,,,,,,,,
+7559,"NAD83(2011) / WISCRS Marathon (m)",9001,6318,7456,9801,1,0,4499,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,74676.1493,9001,8807,55049.2669,9001,,,,,,,,,,,,,
+7560,"NAD83(2011) / WISCRS Marinette (m)",9001,6318,7458,9807,1,0,4499,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,238658.8794,9001,8807,0.0032,9001,,,,,,,,,,,,,
+7561,"NAD83(2011) / WISCRS Menominee (m)",9001,6318,7460,9807,1,0,4499,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,105461.0121,9001,8807,0.0029,9001,,,,,,,,,,,,,
+7562,"NAD83(2011) / WISCRS Monroe (m)",9001,6318,7510,9801,1,0,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,,,,,,,,
+7563,"NAD83(2011) / WISCRS Oconto (m)",9001,6318,7462,9807,1,0,4499,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,182880.3676,9001,8807,0.0033,9001,,,,,,,,,,,,,
+7564,"NAD83(2011) / WISCRS Oneida (m)",9001,6318,7392,9801,1,0,4499,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,70104.1401,9001,8807,57588.0346,9001,,,,,,,,,,,,,
+7565,"NAD83(2011) / WISCRS Pepin and Pierce (m)",9001,6318,7464,9801,1,0,4499,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,167640.3354,9001,8807,86033.0876,9001,,,,,,,,,,,,,
+7566,"NAD83(2011) / WISCRS Polk (m)",9001,6318,7466,9807,1,0,4499,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,141732.2823,9001,8807,0.0059,9001,,,,,,,,,,,,,
+7567,"NAD83(2011) / WISCRS Portage (m)",9001,6318,7468,9801,1,0,4499,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,56388.1128,9001,8807,50022.1874,9001,,,,,,,,,,,,,
+7568,"NAD83(2011) / WISCRS Price (m)",9001,6318,7394,9807,1,0,4499,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,227990.8546,9001,8807,0.0109,9001,,,,,,,,,,,,,
+7569,"NAD83(2011) / WISCRS Richland (m)",9001,6318,7512,9801,1,0,4499,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,202387.6048,9001,8807,134255.4253,9001,,,,,,,,,,,,,
+7570,"NAD83(2011) / WISCRS Rock (m)",9001,6318,7514,9807,1,0,4499,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,146304.2926,9001,8807,0.0068,9001,,,,,,,,,,,,,
+7571,"NAD83(2011) / WISCRS Rusk (m)",9001,6318,7470,9807,1,0,4499,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,250546.1013,9001,8807,0.0234,9001,,,,,,,,,,,,,
+7572,"NAD83(2011) / WISCRS Sauk (m)",9001,6318,7516,9807,1,0,4499,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,185623.5716,9001,8807,0.0051,9001,,,,,,,,,,,,,
+7573,"NAD83(2011) / WISCRS Sawyer (m)",9001,6318,7396,9801,1,0,4499,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,216713.2336,9001,8807,120734.1631,9001,,,,,,,,,,,,,
+7574,"NAD83(2011) / WISCRS Shawano (m)",9001,6318,7472,9807,1,0,4499,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,262433.3253,9001,8807,0.0096,9001,,,,,,,,,,,,,
+7575,"NAD83(2011) / WISCRS St. Croix (m)",9001,6318,7474,9807,1,0,4499,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,165506.7302,9001,8807,0.0103,9001,,,,,,,,,,,,,
+7576,"NAD83(2011) / WISCRS Taylor (m)",9001,6318,7476,9801,1,0,4499,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,187147.5744,9001,8807,107746.7522,9001,,,,,,,,,,,,,
+7577,"NAD83(2011) / WISCRS Trempealeau (m)",9001,6318,7478,9807,1,0,4499,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,256946.9138,9001,8807,0.0041,9001,,,,,,,,,,,,,
+7578,"NAD83(2011) / WISCRS Vernon (m)",9001,6318,7518,9801,1,0,4499,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,222504.4451,9001,8807,47532.0602,9001,,,,,,,,,,,,,
+7579,"NAD83(2011) / WISCRS Vilas (m)",9001,6318,7398,9801,1,0,4499,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,134417.0689,9001,8807,50337.1092,9001,,,,,,,,,,,,,
+7580,"NAD83(2011) / WISCRS Walworth (m)",9001,6318,7520,9801,1,0,4499,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,232562.8651,9001,8807,111088.2224,9001,,,,,,,,,,,,,
+7581,"NAD83(2011) / WISCRS Washburn (m)",9001,6318,7424,9801,1,0,4499,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,234086.8682,9001,8807,188358.6058,9001,,,,,,,,,,,,,
+7582,"NAD83(2011) / WISCRS Washington (m)",9001,6318,7522,9807,1,0,4499,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,120091.4415,9001,8807,0.003,9001,,,,,,,,,,,,,
+7583,"NAD83(2011) / WISCRS Waukesha (m)",9001,6318,7524,9807,1,0,4499,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,208788.418,9001,8807,0.0034,9001,,,,,,,,,,,,,
+7584,"NAD83(2011) / WISCRS Waupaca (m)",9001,6318,7480,9807,1,0,4499,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,185013.9709,9001,8807,0.007,9001,,,,,,,,,,,,,
+7585,"NAD83(2011) / WISCRS Waushara (m)",9001,6318,7526,9801,1,0,4499,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,120091.4402,9001,8807,45069.7587,9001,,,,,,,,,,,,,
+7586,"NAD83(2011) / WISCRS Wood (m)",9001,6318,7482,9801,1,0,4499,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,208483.6173,9001,8807,134589.754,9001,,,,,,,,,,,,,
+7587,"NAD83(2011) / WISCRS Adams and Juneau (ftUS)",9003,6318,7485,9807,1,0,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,,,,,,,,
+7588,"NAD83(2011) / WISCRS Ashland (ftUS)",9003,6318,7379,9807,1,0,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,,,,,,,,
+7589,"NAD83(2011) / WISCRS Barron (ftUS)",9003,6318,7427,9807,1,0,4497,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,305609.625,9003,8807,0.01,9003,,,,,,,,,,,,,
+7590,"NAD83(2011) / WISCRS Bayfield (ftUS)",9003,6318,7381,9801,1,0,4497,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,750000.001,9003,8807,487372.659,9003,,,,,,,,,,,,,
+7591,"NAD83(2011) / WISCRS Brown (ftUS)",9003,6318,7429,9807,1,0,4497,8801,43,9110,8802,-88,9110,8805,1.00002,9201,8806,103674.333,9003,8807,15091.833,9003,,,,,,,,,,,,,
+7592,"NAD83(2011) / WISCRS Buffalo (ftUS)",9003,6318,7431,9807,1,0,4497,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,574999.999,9003,8807,0.016,9003,,,,,,,,,,,,,
+7593,"NAD83(2011) / WISCRS Burnett (ftUS)",9003,6318,7383,9801,1,0,4497,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,209999.999,9003,8807,195032.104,9003,,,,,,,,,,,,,
+7594,"NAD83(2011) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (ftUS)",9003,6318,7487,9807,1,0,4497,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,802999.999,9003,8807,0.016,9003,,,,,,,,,,,,,
+7595,"NAD83(2011) / WISCRS Chippewa (ftUS)",9003,6318,7433,9801,1,0,4497,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,197000,9003,8807,144656.648,9003,,,,,,,,,,,,,
+7596,"NAD83(2011) / WISCRS Clark (ftUS)",9003,6318,7435,9807,1,0,4497,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,655999.997,9003,8807,0.028,9003,,,,,,,,,,,,,
+7597,"NAD83(2011) / WISCRS Columbia (ftUS)",9003,6318,7489,9801,1,0,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,,,,,,,,
+7598,"NAD83(2011) / WISCRS Crawford (ftUS)",9003,6318,7491,9801,1,0,4497,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,373000,9003,8807,176190.987,9003,,,,,,,,,,,,,
+7599,"NAD83(2011) / WISCRS Dane (ftUS)",9003,6318,7493,9801,1,0,4497,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,811000,9003,8807,480943.886,9003,,,,,,,,,,,,,
+7600,"NAD83(2011) / WISCRS Dodge and Jefferson (ftUS)",9003,6318,7495,9807,1,0,4497,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,863999.999,9003,8807,0.025,9003,,,,,,,,,,,,,
+7601,"NAD83(2011) / WISCRS Door (ftUS)",9003,6318,7437,9807,1,0,4497,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,521000,9003,8807,0.008,9003,,,,,,,,,,,,,
+7602,"NAD83(2011) / WISCRS Douglas (ftUS)",9003,6318,7385,9807,1,0,4497,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,194000,9003,8807,0.013,9003,,,,,,,,,,,,,
+7603,"NAD83(2011) / WISCRS Dunn (ftUS)",9003,6318,7439,9807,1,0,4497,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,170000.001,9003,8807,0.01,9003,,,,,,,,,,,,,
+7604,"NAD83(2011) / WISCRS Eau Claire (ftUS)",9003,6318,7441,9801,1,0,4497,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,394000,9003,8807,300812.797,9003,,,,,,,,,,,,,
+7605,"NAD83(2011) / WISCRS Florence (ftUS)",9003,6318,7387,9807,1,0,4497,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,438000.004,9003,8807,0.021,9003,,,,,,,,,,,,,
+7606,"NAD83(2011) / WISCRS Forest (ftUS)",9003,6318,7389,9807,1,0,4497,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,905000.005,9003,8807,0.052,9003,,,,,,,,,,,,,
+7607,"NAD83(2011) / WISCRS Grant (ftUS)",9003,6318,7497,9807,1,0,4497,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,794999.998,9003,8807,0.033,9003,,,,,,,,,,,,,
+7608,"NAD83(2011) / WISCRS Green and Lafayette (ftUS)",9003,6318,7499,9801,1,0,4497,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,558000,9003,8807,150361.559,9003,,,,,,,,,,,,,
+7609,"NAD83(2011) / WISCRS Green Lake and Marquette (ftUS)",9003,6318,7501,9801,1,0,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,,,,,,,,
+7610,"NAD83(2011) / WISCRS Iowa (ftUS)",9003,6318,7503,9807,1,0,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,,,,,,,,
+7611,"NAD83(2011) / WISCRS Iron (ftUS)",9003,6318,7391,9807,1,0,4497,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,725000,9003,8807,0.028,9003,,,,,,,,,,,,,
+7612,"NAD83(2011) / WISCRS Jackson (ftUS)",9003,6318,7451,9807,1,0,4497,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,88582.5,9003,8807,82020.833,9003,,,,,,,,,,,,,
+7613,"NAD83(2011) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (ftUS)",9003,6318,7505,9807,1,0,4497,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,610000.003,9003,8807,0.003,9003,,,,,,,,,,,,,
+7614,"NAD83(2011) / WISCRS Kewaunee, Manitowoc and Sheboygan (ftUS)",9003,6318,7507,9807,1,0,4497,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,262000.006,9003,8807,0.004,9003,,,,,,,,,,,,,
+7615,"NAD83(2011) / WISCRS La Crosse (ftUS)",9003,6318,7509,9807,1,0,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,,,,,,,,
+7616,"NAD83(2011) / WISCRS Langlade (ftUS)",9003,6318,7453,9801,1,0,4497,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,651000,9003,8807,345405.421,9003,,,,,,,,,,,,,
+7617,"NAD83(2011) / WISCRS Lincoln (ftUS)",9003,6318,7455,9807,1,0,4497,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,381000,9003,8807,0.019,9003,,,,,,,,,,,,,
+7618,"NAD83(2011) / WISCRS Marathon (ftUS)",9003,6318,7457,9801,1,0,4497,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,245000,9003,8807,180607.47,9003,,,,,,,,,,,,,
+7619,"NAD83(2011) / WISCRS Marinette (ftUS)",9003,6318,7459,9807,1,0,4497,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,783000.007,9003,8807,0.01,9003,,,,,,,,,,,,,
+7620,"NAD83(2011) / WISCRS Menominee (ftUS)",9003,6318,7461,9807,1,0,4497,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,346000.004,9003,8807,0.01,9003,,,,,,,,,,,,,
+7621,"NAD83(2011) / WISCRS Monroe (ftUS)",9003,6318,7511,9801,1,0,4497,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,671000,9003,8807,400012.278,9003,,,,,,,,,,,,,
+7622,"NAD83(2011) / WISCRS Oconto (ftUS)",9003,6318,7463,9807,1,0,4497,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,600000.006,9003,8807,0.011,9003,,,,,,,,,,,,,
+7623,"NAD83(2011) / WISCRS Oneida (ftUS)",9003,6318,7393,9801,1,0,4497,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,230000,9003,8807,188936.744,9003,,,,,,,,,,,,,
+7624,"NAD83(2011) / WISCRS Pepin and Pierce (ftUS)",9003,6318,7465,9801,1,0,4497,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,550000,9003,8807,282260.222,9003,,,,,,,,,,,,,
+7625,"NAD83(2011) / WISCRS Polk (ftUS)",9003,6318,7467,9807,1,0,4497,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,464999.996,9003,8807,0.019,9003,,,,,,,,,,,,,
+7626,"NAD83(2011) / WISCRS Portage (ftUS)",9003,6318,7469,9801,1,0,4497,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,185000,9003,8807,164114.46,9003,,,,,,,,,,,,,
+7627,"NAD83(2011) / WISCRS Price (ftUS)",9003,6318,7395,9807,1,0,4497,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,747999.995,9003,8807,0.036,9003,,,,,,,,,,,,,
+7628,"NAD83(2011) / WISCRS Richland (ftUS)",9003,6318,7513,9801,1,0,4497,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,664000,9003,8807,440469.675,9003,,,,,,,,,,,,,
+7629,"NAD83(2011) / WISCRS Rock (ftUS)",9003,6318,7515,9807,1,0,4497,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,480000,9003,8807,0.022,9003,,,,,,,,,,,,,
+7630,"NAD83(2011) / WISCRS Rusk (ftUS)",9003,6318,7471,9807,1,0,4497,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,822000.001,9003,8807,0.077,9003,,,,,,,,,,,,,
+7631,"NAD83(2011) / WISCRS Sauk (ftUS)",9003,6318,7517,9807,1,0,4497,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,609000.001,9003,8807,0.017,9003,,,,,,,,,,,,,
+7632,"NAD83(2011) / WISCRS Sawyer (ftUS)",9003,6318,7397,9801,1,0,4497,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,711000.001,9003,8807,396108.667,9003,,,,,,,,,,,,,
+7633,"NAD83(2011) / WISCRS Shawano (ftUS)",9003,6318,7473,9807,1,0,4497,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,861000.001,9003,8807,0.031,9003,,,,,,,,,,,,,
+7634,"NAD83(2011) / WISCRS St. Croix (ftUS)",9003,6318,7475,9807,1,0,4497,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,542999.997,9003,8807,0.034,9003,,,,,,,,,,,,,
+7635,"NAD83(2011) / WISCRS Taylor (ftUS)",9003,6318,7477,9801,1,0,4497,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,614000,9003,8807,353499.136,9003,,,,,,,,,,,,,
+7636,"NAD83(2011) / WISCRS Trempealeau (ftUS)",9003,6318,7479,9807,1,0,4497,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,843000,9003,8807,0.013,9003,,,,,,,,,,,,,
+7637,"NAD83(2011) / WISCRS Vernon (ftUS)",9003,6318,7519,9801,1,0,4497,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,730000,9003,8807,155944.768,9003,,,,,,,,,,,,,
+7638,"NAD83(2011) / WISCRS Vilas (ftUS)",9003,6318,7399,9801,1,0,4497,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,441000,9003,8807,165147.666,9003,,,,,,,,,,,,,
+7639,"NAD83(2011) / WISCRS Walworth (ftUS)",9003,6318,7521,9801,1,0,4497,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,763000,9003,8807,364461.943,9003,,,,,,,,,,,,,
+7640,"NAD83(2011) / WISCRS Washburn (ftUS)",9003,6318,7425,9801,1,0,4497,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,768000,9003,8807,617973.193,9003,,,,,,,,,,,,,
+7641,"NAD83(2011) / WISCRS Washington (ftUS)",9003,6318,7523,9807,1,0,4497,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,394000.004,9003,8807,0.01,9003,,,,,,,,,,,,,
+7642,"NAD83(2011) / WISCRS Waukesha (ftUS)",9003,6318,7525,9807,1,0,4497,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,685000.001,9003,8807,0.011,9003,,,,,,,,,,,,,
+7643,"NAD83(2011) / WISCRS Waupaca (ftUS)",9003,6318,7481,9807,1,0,4497,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,607000.003,9003,8807,0.023,9003,,,,,,,,,,,,,
+7644,"NAD83(2011) / WISCRS Waushara (ftUS)",9003,6318,7527,9801,1,0,4497,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,394000,9003,8807,147866.367,9003,,,,,,,,,,,,,
+7645,"NAD83(2011) / WISCRS Wood (ftUS)",9003,6318,7483,9801,1,0,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,,,,,,,,
+7692,"Kyrg-06 / zone 1",9001,7686,7687,9807,1,0,4400,8801,0,9110,8802,68.31,9110,8805,1,9201,8806,1300000,9001,8807,14743.5,9001,,,,,,,,,,,,,
+7693,"Kyrg-06 / zone 2",9001,7686,7688,9807,1,0,4400,8801,0,9110,8802,71.31,9110,8805,1,9201,8806,2300000,9001,8807,14743.5,9001,,,,,,,,,,,,,
+7694,"Kyrg-06 / zone 3",9001,7686,7689,9807,1,0,4400,8801,0,9110,8802,74.31,9110,8805,1,9201,8806,3300000,9001,8807,14743.5,9001,,,,,,,,,,,,,
+7695,"Kyrg-06 / zone 4",9001,7686,7690,9807,1,0,4400,8801,0,9110,8802,77.31,9110,8805,1,9201,8806,4300000,9001,8807,14743.5,9001,,,,,,,,,,,,,
+7696,"Kyrg-06 / zone 5",9001,7686,7691,9807,1,0,4400,8801,0,9110,8802,80.31,9110,8805,1,9201,8806,5300000,9001,8807,14743.5,9001,,,,,,,,,,,,,
+7755,"WGS 84 / India NSF LCC",9001,4326,7722,9802,1,0,4499,8821,24,9102,8822,80,9102,8823,12.2822638,9110,8824,35.1022096,9110,8826,4000000,9001,8827,4000000,9001,,,,,,,,,,
+7756,"WGS 84 / Andhra Pradesh",9001,4326,7723,9802,1,0,4499,8821,16.25543298,9102,8822,80.875,9102,8823,13.75,9102,8824,18.75,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7757,"WGS 84 / Arunachal Pradesh",9001,4326,7724,9802,1,0,4499,8821,28.00157897,9102,8822,94.5,9102,8823,27,9102,8824,29,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7758,"WGS 84 / Assam",9001,4326,7725,9802,1,0,4499,8821,26.00257703,9102,8822,92.75,9102,8823,24.4,9110,8824,27.2,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7759,"WGS 84 / Bihar",9001,4326,7726,9802,1,0,4499,8821,25.87725247,9102,8822,85.875,9102,8823,24.625,9102,8824,27.125,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7760,"WGS 84 / Delhi",9001,4326,7727,9802,1,0,4499,8821,28.62510126,9102,8822,77,9102,8823,28.223,9110,8824,28.523,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7761,"WGS 84 / Gujarat",9001,4326,7728,9802,1,0,4499,8821,22.37807121,9102,8822,71.375,9102,8823,20.473,9110,8824,23.573,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7762,"WGS 84 / Haryana",9001,4326,7729,9802,1,0,4499,8821,29.25226266,9102,8822,76,9102,8823,28.05,9110,8824,30.25,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7763,"WGS 84 / Himachal Pradesh",9001,4326,7730,9802,1,0,4499,8821,31.75183497,9102,8822,77.375,9102,8823,30.75,9102,8824,32.75,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7764,"WGS 84 / Jammu and Kashmir",9001,4326,7731,9802,1,0,4499,8821,34.75570874,9102,8822,76.5,9102,8823,33.05,9110,8824,36.25,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7765,"WGS 84 / Jharkhand",9001,4326,7732,9802,1,0,4499,8821,23.62652682,9102,8822,85.625,9102,8823,22.323,9110,8824,24.423,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7766,"WGS 84 / Madhya Pradesh",9001,4326,7733,9802,1,0,4499,8821,24.00529821,9102,8822,78.375,9102,8823,22,9102,8824,26,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7767,"WGS 84 / Maharashtra",9001,4326,7734,9802,1,0,4499,8821,18.88015774,9102,8822,76.75,9102,8823,16.373,9110,8824,21.073,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7768,"WGS 84 / Manipur",9001,4326,7735,9802,1,0,4499,8821,24.75060911,9102,8822,94,9102,8823,24.05,9110,8824,25.25,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7769,"WGS 84 / Meghalaya",9001,4326,7736,9802,1,0,4499,8821,25.62524747,9102,8822,91.375,9102,8823,25.123,9110,8824,26.023,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7770,"WGS 84 / Nagaland",9001,4326,7737,9802,1,0,4499,8821,26.12581974,9102,8822,94.375,9102,8823,25.223,9110,8824,26.523,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7771,"WGS 84 / India Northeast",9001,4326,7738,9802,1,0,4499,8821,25.63452135,9102,8822,93.5,9102,8823,23.023,9110,8824,28.123,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7772,"WGS 84 / Orissa",9001,4326,7739,9802,1,0,4499,8821,20.25305174,9102,8822,84.375,9102,8823,18.35,9110,8824,21.55,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7773,"WGS 84 / Punjab",9001,4326,7740,9802,1,0,4499,8821,31.00178226,9102,8822,75.375,9102,8823,30,9102,8824,32,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7774,"WGS 84 / Rajasthan",9001,4326,7741,9802,1,0,4499,8821,26.88505546,9102,8822,73.875,9102,8823,24.173,9110,8824,29.273,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7775,"WGS 84 / Uttar Pradesh",9001,4326,7742,9802,1,0,4499,8821,27.13270823,9102,8822,80.875,9102,8823,24.523,9110,8824,29.223,9110,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7776,"WGS 84 / Uttaranchal",9001,4326,7743,9802,1,0,4499,8821,30.0017132,9102,8822,79.375,9102,8823,29,9102,8824,31,9102,8826,1000000,9001,8827,1000000,9001,,,,,,,,,,
+7777,"WGS 84 / Andaman and Nicobar",9001,4326,7744,9807,1,0,4499,8801,10.25,9102,8802,93.25,9102,8805,0.9999428,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7778,"WGS 84 / Chhattisgarh",9001,4326,7745,9807,1,0,4499,8801,21,9102,8802,82.25,9102,8805,0.9998332,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7779,"WGS 84 / Goa",9001,4326,7746,9807,1,0,4499,8801,15.375,9102,8802,74,9102,8805,0.9999913,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7780,"WGS 84 / Karnataka",9001,4326,7747,9807,1,0,4499,8801,15.125,9102,8802,76.375,9102,8805,0.9998012,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7781,"WGS 84 / Kerala",9001,4326,7748,9807,1,0,4499,8801,10.5,9102,8802,76,9102,8805,0.9999177,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7782,"WGS 84 / Lakshadweep",9001,4326,7749,9807,1,0,4499,8801,10,9102,8802,73.125,9102,8805,0.9999536,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7783,"WGS 84 / Mizoram",9001,4326,7750,9807,1,0,4499,8801,23.125,9102,8802,92.75,9102,8805,0.9999821,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7784,"WGS 84 / Sikkim",9001,4326,7751,9807,1,0,4499,8801,27.625,9102,8802,88.5,9102,8805,0.9999926,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7785,"WGS 84 / Tamil Nadu",9001,4326,7752,9807,1,0,4499,8801,10.875,9102,8802,78.375,9102,8805,0.9997942,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7786,"WGS 84 / Tripura",9001,4326,7753,9807,1,0,4499,8801,23.75,9102,8802,91.75,9102,8805,0.9999822,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7787,"WGS 84 / West Bengal",9001,4326,7754,9807,1,0,4499,8801,24.375,9102,8802,87.875,9102,8805,0.9998584,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+7791,"RDN2008 / UTM zone 32N",9001,6706,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7792,"RDN2008 / UTM zone 33N",9001,6706,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7793,"RDN2008 / UTM zone 34N",9001,6706,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7794,"RDN2008 / Italy zone (E-N)",9001,6706,6877,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9985,9201,8806,7000000,9001,8807,0,9001,,,,,,,,,,,,,
+7795,"RDN2008 / Zone 12 (E-N)",9001,6706,6878,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,1,9201,8806,3000000,9001,8807,0,9001,,,,,,,,,,,,,
+7799,"BGS2005 / UTM zone 34N (N-E)",9001,7798,16034,9807,1,0,4531,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7800,"BGS2005 / UTM zone 35N (N-E)",9001,7798,16035,9807,1,0,4531,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7801,"BGS2005 / CCS2005",9001,7798,7802,9802,1,0,4531,8821,42.400435246,9110,8822,25.3,9110,8823,42,9110,8824,43.2,9110,8826,500000,9001,8827,4725824.3591,9001,,,,,,,,,,
+7803,"BGS2005 / UTM zone 34N",9001,7798,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7804,"BGS2005 / UTM zone 35N",9001,7798,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7805,"BGS2005 / UTM zone 36N",9001,7798,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+7825,"Pulkovo 1942 / CS63 zone X1",9001,4284,7818,9807,1,0,4530,8801,0.05,9110,8802,23.3,9110,8805,1,9201,8806,1300000,9001,8807,0,9001,,,,,,,,,,,,,
+7826,"Pulkovo 1942 / CS63 zone X2",9001,4284,7819,9807,1,0,4530,8801,0.05,9110,8802,26.3,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,,,,,,,,,
+7827,"Pulkovo 1942 / CS63 zone X3",9001,4284,7820,9807,1,0,4530,8801,0.05,9110,8802,29.3,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,,,,,,,,,
+7828,"Pulkovo 1942 / CS63 zone X4",9001,4284,7821,9807,1,0,4530,8801,0.05,9110,8802,32.3,9110,8805,1,9201,8806,4300000,9001,8807,0,9001,,,,,,,,,,,,,
+7829,"Pulkovo 1942 / CS63 zone X5",9001,4284,7822,9807,1,0,4530,8801,0.05,9110,8802,35.3,9110,8805,1,9201,8806,5300000,9001,8807,0,9001,,,,,,,,,,,,,
+7830,"Pulkovo 1942 / CS63 zone X6",9001,4284,7823,9807,1,0,4530,8801,0.05,9110,8802,38.3,9110,8805,1,9201,8806,6300000,9001,8807,0,9001,,,,,,,,,,,,,
+7831,"Pulkovo 1942 / CS63 zone X7",9001,4284,7824,9807,1,0,4530,8801,0.05,9110,8802,41.3,9110,8805,1,9201,8806,7300000,9001,8807,0,9001,,,,,,,,,,,,,
+7845,"GDA2020 / GA LCC",9001,7844,17362,9802,1,0,4400,8821,0,9102,8822,134,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,,,,,,,,,
+7846,"GDA2020 / MGA zone 46",9001,7844,6729,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7847,"GDA2020 / MGA zone 47",9001,7844,6730,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7848,"GDA2020 / MGA zone 48",9001,7844,17348,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7849,"GDA2020 / MGA zone 49",9001,7844,17349,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7850,"GDA2020 / MGA zone 50",9001,7844,17350,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7851,"GDA2020 / MGA zone 51",9001,7844,17351,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7852,"GDA2020 / MGA zone 52",9001,7844,17352,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7853,"GDA2020 / MGA zone 53",9001,7844,17353,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7854,"GDA2020 / MGA zone 54",9001,7844,17354,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7855,"GDA2020 / MGA zone 55",9001,7844,17355,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7856,"GDA2020 / MGA zone 56",9001,7844,17356,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7857,"GDA2020 / MGA zone 57",9001,7844,17357,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7858,"GDA2020 / MGA zone 58",9001,7844,17358,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7859,"GDA2020 / MGA zone 59",9001,7844,6731,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7877,"Astro DOS 71 / SHLG71",9001,4710,7875,9807,1,0,4400,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,300000,9001,8807,2000000,9001,,,,,,,,,,,,,
+7878,"Astro DOS 71 / UTM zone 30S",9001,4710,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7882,"St. Helena Tritan / SHLG(Tritan)",9001,7881,7876,9807,1,0,4400,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,299483.737,9001,8807,2000527.879,9001,,,,,,,,,,,,,
+7883,"St. Helena Tritan / UTM zone 30S",9001,7881,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7887,SHMG2015,9001,7886,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+7899,"GDA2020 / Vicgrid",9001,7844,17361,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,2500000,9001,,,,,,,,,,
+7991,"NAD27 / MTM zone 10",9001,4267,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+7992,"Malongo 1987 / UTM zone 33S",9001,4259,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+8013,"GDA2020 / ALB2020",9001,7844,7993,9807,1,0,4400,8801,0,9110,8802,117.53,9110,8805,1.0000044,9201,8806,50000,9001,8807,4100000,9001,,,,,,,,,,,,,
+8014,"GDA2020 / BIO2020",9001,7844,7994,9807,1,0,4400,8801,0,9110,8802,115.15,9110,8805,1.0000022,9201,8806,60000,9001,8807,2700000,9001,,,,,,,,,,,,,
+8015,"GDA2020 / BRO2020",9001,7844,7995,9807,1,0,4400,8801,0,9110,8802,122.2,9110,8805,1.00000298,9201,8806,50000,9001,8807,2300000,9001,,,,,,,,,,,,,
+8016,"GDA2020 / BCG2020",9001,7844,7996,9807,1,0,4400,8801,0,9110,8802,115.26,9110,8805,0.99999592,9201,8806,50000,9001,8807,4000000,9001,,,,,,,,,,,,,
+8017,"GDA2020 / CARN2020",9001,7844,7997,9807,1,0,4400,8801,0,9110,8802,113.4,9110,8805,0.99999796,9201,8806,50000,9001,8807,3050000,9001,,,,,,,,,,,,,
+8018,"GDA2020 / CIG2020",9001,7844,7998,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.00002514,9201,8806,50000,9001,8807,1400000,9001,,,,,,,,,,,,,
+8019,"GDA2020 / CKIG2020",9001,7844,7999,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,0.99999387,9201,8806,50000,9001,8807,1600000,9001,,,,,,,,,,,,,
+8020,"GDA2020 / COL2020",9001,7844,8000,9807,1,0,4400,8801,0,9110,8802,115.56,9110,8805,1.000019,9201,8806,40000,9001,8807,4100000,9001,,,,,,,,,,,,,
+8021,"GDA2020 / ESP2020",9001,7844,8001,9807,1,0,4400,8801,0,9110,8802,121.53,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,,,,,,,,,
+8022,"GDA2020 / EXM2020",9001,7844,8002,9807,1,0,4400,8801,0,9110,8802,114.04,9110,8805,1.00000236,9201,8806,50000,9001,8807,2750000,9001,,,,,,,,,,,,,
+8023,"GDA2020 / GCG2020",9001,7844,8003,9807,1,0,4400,8801,0,9110,8802,114.35,9110,8805,1.00000628,9201,8806,50000,9001,8807,3450000,9001,,,,,,,,,,,,,
+8024,"GDA2020 / GOLD2020",9001,7844,8004,9807,1,0,4400,8801,0,9110,8802,121.3,9110,8805,1.00004949,9201,8806,60000,9001,8807,3800000,9001,,,,,,,,,,,,,
+8025,"GDA2020 / JCG2020",9001,7844,8005,9807,1,0,4400,8801,0,9110,8802,114.59,9110,8805,1.00000314,9201,8806,50000,9001,8807,3650000,9001,,,,,,,,,,,,,
+8026,"GDA2020 / KALB2020",9001,7844,8006,9807,1,0,4400,8801,0,9110,8802,114.1855,9110,8805,1.000014,9201,8806,55000,9001,8807,3700000,9001,,,,,,,,,,,,,
+8027,"GDA2020 / KAR2020",9001,7844,8007,9807,1,0,4400,8801,0,9110,8802,116.56,9110,8805,0.9999989,9201,8806,50000,9001,8807,2550000,9001,,,,,,,,,,,,,
+8028,"GDA2020 / KUN2020",9001,7844,8008,9807,1,0,4400,8801,0,9110,8802,128.45,9110,8805,1.0000165,9201,8806,50000,9001,8807,2100000,9001,,,,,,,,,,,,,
+8029,"GDA2020 / LCG2020",9001,7844,8009,9807,1,0,4400,8801,0,9110,8802,115.22,9110,8805,1.00000157,9201,8806,50000,9001,8807,3750000,9001,,,,,,,,,,,,,
+8030,"GDA2020 / MRCG2020",9001,7844,8010,9807,1,0,4400,8801,0,9110,8802,115.1,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,,,,,,,,,
+8031,"GDA2020 / PCG2020",9001,7844,8011,9807,1,0,4400,8801,0,9110,8802,115.49,9110,8805,0.99999906,9201,8806,50000,9001,8807,3900000,9001,,,,,,,,,,,,,
+8032,"GDA2020 / PHG2020",9001,7844,8012,9807,1,0,4400,8801,0,9110,8802,118.36,9110,8805,1.00000135,9201,8806,50000,9001,8807,2500000,9001,,,,,,,,,,,,,
+8035,"WGS 84 / TM Zone 20N (ftUS)",9003,4326,8033,9807,1,0,4497,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+8036,"WGS 84 / TM Zone 21N (ftUS)",9003,4326,8034,9807,1,0,4497,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,,
+8044,"Gusterberg Grid (Ferro)",9001,8042,8040,9806,1,0,6501,8801,48.021847,9110,8802,31.481505,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+8045,"St. Stephen Grid (Ferro)",9001,8043,8041,9806,1,0,6501,8801,48.123154,9110,8802,34.022732,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+8058,"GDA2020 / NSW Lambert",9001,7844,17364,9802,1,0,4400,8821,-33.25,9102,8822,147,9102,8823,-30.75,9102,8824,-35.75,9102,8826,9300000,9001,8827,4500000,9001,,,,,,,,,,
+8059,"GDA2020 / SA Lambert",9001,7844,17359,9802,1,0,4400,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,,,,,,,,,
+8065,"NAD83(2011) / PCCS zone 1 (ft)",9002,6318,8061,9815,1,0,4495,8811,32.15,9110,8812,-111.24,9110,8813,45,9102,8814,45,9102,8815,1.00011,9201,8816,160000,9002,8817,800000,9002,,,,,,,
+8066,"NAD83(2011) / PCCS zone 2 (ft)",9002,6318,8062,9807,1,0,4495,8801,31.15,9110,8802,-112.1,9110,8805,1.00009,9201,8806,1800000,9002,8807,1000000,9002,,,,,,,,,,,,,
+8067,"NAD83(2011) / PCCS zone 3 (ft)",9002,6318,8063,9807,1,0,4495,8801,31.3,9110,8802,-113.1,9110,8805,1.000055,9201,8806,600000,9002,8807,0,9002,,,,,,,,,,,,,
+8068,"NAD83(2011) / PCCS zone 4 (ft)",9002,6318,8064,9801,1,0,4495,8801,30.3,9110,8802,-110.45,9110,8805,0.9998,9201,8806,30000,9002,8807,-620000,9002,,,,,,,,,,,,,
+8082,"NAD83(CSRS)v6 / MTM Nova Scotia zone 4",9001,8252,8080,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,,
+8083,"NAD83(CSRS)v6 / MTM Nova Scotia zone 5",9001,8252,8081,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+8088,"ISN2016 / Lambert 2016",9001,8086,8087,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,2700000,9001,8827,300000,9001,,,,,,,,,,
+8090,"NAD83(HARN) / WISCRS Florence (m)",9001,4152,7386,9807,1,0,4499,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,133502.6683,9001,8807,0.0063,9001,,,,,,,,,,,,,
+8091,"NAD83(HARN) / WISCRS Florence (ftUS)",9003,4152,7387,9807,1,0,4497,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,438000.004,9003,8807,0.021,9003,,,,,,,,,,,,,
+8092,"NAD83(HARN) / WISCRS Eau Claire (m)",9001,4152,7440,9801,1,0,4499,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,120091.4402,9001,8807,91687.9239,9001,,,,,,,,,,,,,
+8093,"NAD83(HARN) / WISCRS Eau Claire (ftUS)",9003,4152,7441,9801,1,0,4497,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,394000,9003,8807,300812.797,9003,,,,,,,,,,,,,
+8095,"NAD83(HARN) / WISCRS Wood (m)",9001,4152,7482,9801,1,0,4499,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,208483.6173,9001,8807,134589.754,9001,,,,,,,,,,,,,
+8096,"NAD83(HARN) / WISCRS Wood (ftUS)",9003,4152,7483,9801,1,0,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,,,,,,,,
+8097,"NAD83(HARN) / WISCRS Waushara (m)",9001,4152,7526,9801,1,0,4499,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,120091.4402,9001,8807,45069.7587,9001,,,,,,,,,,,,,
+8098,"NAD83(HARN) / WISCRS Waushara (ftUS)",9003,4152,7527,9801,1,0,4497,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,394000,9003,8807,147866.367,9003,,,,,,,,,,,,,
+8099,"NAD83(HARN) / WISCRS Waupaca (m)",9001,4152,7480,9807,1,0,4499,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,185013.9709,9001,8807,0.007,9001,,,,,,,,,,,,,
+8100,"NAD83(HARN) / WISCRS Waupaca (ftUS)",9003,4152,7481,9807,1,0,4497,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,607000.003,9003,8807,0.023,9003,,,,,,,,,,,,,
+8101,"NAD83(HARN) / WISCRS Waukesha (m)",9001,4152,7524,9807,1,0,4499,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,208788.418,9001,8807,0.0034,9001,,,,,,,,,,,,,
+8102,"NAD83(HARN) / WISCRS Waukesha (ftUS)",9003,4152,7525,9807,1,0,4497,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,685000.001,9003,8807,0.011,9003,,,,,,,,,,,,,
+8103,"NAD83(HARN) / WISCRS Washington (m)",9001,4152,7522,9807,1,0,4499,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,120091.4415,9001,8807,0.003,9001,,,,,,,,,,,,,
+8104,"NAD83(HARN) / WISCRS Washington (ftUS)",9003,4152,7523,9807,1,0,4497,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,394000.004,9003,8807,0.01,9003,,,,,,,,,,,,,
+8105,"NAD83(HARN) / WISCRS Washburn (m)",9001,4152,7424,9801,1,0,4499,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,234086.8682,9001,8807,188358.6058,9001,,,,,,,,,,,,,
+8106,"NAD83(HARN) / WISCRS Washburn (ftUS)",9003,4152,7425,9801,1,0,4497,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,768000,9003,8807,617973.193,9003,,,,,,,,,,,,,
+8107,"NAD83(HARN) / WISCRS Walworth (m)",9001,4152,7520,9801,1,0,4499,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,232562.8651,9001,8807,111088.2224,9001,,,,,,,,,,,,,
+8108,"NAD83(HARN) / WISCRS Walworth (ftUS)",9003,4152,7521,9801,1,0,4497,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,763000,9003,8807,364461.943,9003,,,,,,,,,,,,,
+8109,"NAD83(HARN) / WISCRS Vilas (m)",9001,4152,7398,9801,1,0,4499,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,134417.0689,9001,8807,50337.1092,9001,,,,,,,,,,,,,
+8110,"NAD83(HARN) / WISCRS Vilas (ftUS)",9003,4152,7399,9801,1,0,4497,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,441000,9003,8807,165147.666,9003,,,,,,,,,,,,,
+8111,"NAD83(HARN) / WISCRS Vernon (m)",9001,4152,7518,9801,1,0,4499,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,222504.4451,9001,8807,47532.0602,9001,,,,,,,,,,,,,
+8112,"NAD83(HARN) / WISCRS Vernon (ftUS)",9003,4152,7519,9801,1,0,4497,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,730000,9003,8807,155944.768,9003,,,,,,,,,,,,,
+8113,"NAD83(HARN) / WISCRS Trempealeau (m)",9001,4152,7478,9807,1,0,4499,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,256946.9138,9001,8807,0.0041,9001,,,,,,,,,,,,,
+8114,"NAD83(HARN) / WISCRS Trempealeau (ftUS)",9003,4152,7479,9807,1,0,4497,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,843000,9003,8807,0.013,9003,,,,,,,,,,,,,
+8115,"NAD83(HARN) / WISCRS Taylor (m)",9001,4152,7476,9801,1,0,4499,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,187147.5744,9001,8807,107746.7522,9001,,,,,,,,,,,,,
+8116,"NAD83(HARN) / WISCRS Taylor (ftUS)",9003,4152,7477,9801,1,0,4497,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,614000,9003,8807,353499.136,9003,,,,,,,,,,,,,
+8117,"NAD83(HARN) / WISCRS St. Croix (m)",9001,4152,7474,9807,1,0,4499,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,165506.7302,9001,8807,0.0103,9001,,,,,,,,,,,,,
+8118,"NAD83(HARN) / WISCRS St. Croix (ftUS)",9003,4152,7475,9807,1,0,4497,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,542999.997,9003,8807,0.034,9003,,,,,,,,,,,,,
+8119,"NAD83(HARN) / WISCRS Shawano (m)",9001,4152,7472,9807,1,0,4499,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,262433.3253,9001,8807,0.0096,9001,,,,,,,,,,,,,
+8120,"NAD83(HARN) / WISCRS Shawano (ftUS)",9003,4152,7473,9807,1,0,4497,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,861000.001,9003,8807,0.031,9003,,,,,,,,,,,,,
+8121,"NAD83(HARN) / WISCRS Sawyer (m)",9001,4152,7396,9801,1,0,4499,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,216713.2336,9001,8807,120734.1631,9001,,,,,,,,,,,,,
+8122,"NAD83(HARN) / WISCRS Sawyer (ftUS)",9003,4152,7397,9801,1,0,4497,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,711000.001,9003,8807,396108.667,9003,,,,,,,,,,,,,
+8123,"NAD83(HARN) / WISCRS Sauk (m)",9001,4152,7516,9807,1,0,4499,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,185623.5716,9001,8807,0.0051,9001,,,,,,,,,,,,,
+8124,"NAD83(HARN) / WISCRS Sauk (ftUS)",9003,4152,7517,9807,1,0,4497,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,609000.001,9003,8807,0.017,9003,,,,,,,,,,,,,
+8125,"NAD83(HARN) / WISCRS Rusk (m)",9001,4152,7470,9807,1,0,4499,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,250546.1013,9001,8807,0.0234,9001,,,,,,,,,,,,,
+8126,"NAD83(HARN) / WISCRS Rusk (ftUS)",9003,4152,7471,9807,1,0,4497,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,822000.001,9003,8807,0.077,9003,,,,,,,,,,,,,
+8127,"NAD83(HARN) / WISCRS Rock (m)",9001,4152,7514,9807,1,0,4499,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,146304.2926,9001,8807,0.0068,9001,,,,,,,,,,,,,
+8128,"NAD83(HARN) / WISCRS Rock (ftUS)",9003,4152,7515,9807,1,0,4497,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,480000,9003,8807,0.022,9003,,,,,,,,,,,,,
+8129,"NAD83(HARN) / WISCRS Richland (m)",9001,4152,7512,9801,1,0,4499,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,202387.6048,9001,8807,134255.4253,9001,,,,,,,,,,,,,
+8130,"NAD83(HARN) / WISCRS Richland (ftUS)",9003,4152,7513,9801,1,0,4497,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,664000,9003,8807,440469.675,9003,,,,,,,,,,,,,
+8131,"NAD83(HARN) / WISCRS Price (m)",9001,4152,7394,9807,1,0,4499,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,227990.8546,9001,8807,0.0109,9001,,,,,,,,,,,,,
+8132,"NAD83(HARN) / WISCRS Price (ftUS)",9003,4152,7395,9807,1,0,4497,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,747999.995,9003,8807,0.036,9003,,,,,,,,,,,,,
+8133,"NAD83(HARN) / WISCRS Portage (m)",9001,4152,7468,9801,1,0,4499,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,56388.1128,9001,8807,50022.1874,9001,,,,,,,,,,,,,
+8134,"NAD83(HARN) / WISCRS Portage (ftUS)",9003,4152,7469,9801,1,0,4497,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,185000,9003,8807,164114.46,9003,,,,,,,,,,,,,
+8135,"NAD83(HARN) / WISCRS Polk (m)",9001,4152,7466,9807,1,0,4499,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,141732.2823,9001,8807,0.0059,9001,,,,,,,,,,,,,
+8136,"NAD83(HARN) / WISCRS Polk (ftUS)",9003,4152,7467,9807,1,0,4497,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,464999.996,9003,8807,0.019,9003,,,,,,,,,,,,,
+8137,"NAD83(HARN) / WISCRS Pepin and Pierce (m)",9001,4152,7464,9801,1,0,4499,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,167640.3354,9001,8807,86033.0876,9001,,,,,,,,,,,,,
+8138,"NAD83(HARN) / WISCRS Pepin and Pierce (ftUS)",9003,4152,7465,9801,1,0,4497,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,550000,9003,8807,282260.222,9003,,,,,,,,,,,,,
+8139,"NAD83(HARN) / WISCRS Oneida (m)",9001,4152,7392,9801,1,0,4499,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,70104.1401,9001,8807,57588.0346,9001,,,,,,,,,,,,,
+8140,"NAD83(HARN) / WISCRS Oneida (ftUS)",9003,4152,7393,9801,1,0,4497,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,230000,9003,8807,188936.744,9003,,,,,,,,,,,,,
+8141,"NAD83(HARN) / WISCRS Oconto (m)",9001,4152,7462,9807,1,0,4499,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,182880.3676,9001,8807,0.0033,9001,,,,,,,,,,,,,
+8142,"NAD83(HARN) / WISCRS Oconto (ftUS)",9003,4152,7463,9807,1,0,4497,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,600000.006,9003,8807,0.011,9003,,,,,,,,,,,,,
+8143,"NAD83(HARN) / WISCRS Monroe (m)",9001,4152,7510,9801,1,0,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,,,,,,,,
+8144,"NAD83(HARN) / WISCRS Monroe (ftUS)",9003,4152,7511,9801,1,0,4497,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,671000,9003,8807,400012.278,9003,,,,,,,,,,,,,
+8145,"NAD83(HARN) / WISCRS Menominee (m)",9001,4152,7460,9807,1,0,4499,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,105461.0121,9001,8807,0.0029,9001,,,,,,,,,,,,,
+8146,"NAD83(HARN) / WISCRS Menominee (ftUS)",9003,4152,7461,9807,1,0,4497,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,346000.004,9003,8807,0.01,9003,,,,,,,,,,,,,
+8147,"NAD83(HARN) / WISCRS Marinette (m)",9001,4152,7458,9807,1,0,4499,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,238658.8794,9001,8807,0.0032,9001,,,,,,,,,,,,,
+8148,"NAD83(HARN) / WISCRS Marinette (ftUS)",9003,4152,7459,9807,1,0,4497,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,783000.007,9003,8807,0.01,9003,,,,,,,,,,,,,
+8149,"NAD83(HARN) / WISCRS Marathon (m)",9001,4152,7456,9801,1,0,4499,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,74676.1493,9001,8807,55049.2669,9001,,,,,,,,,,,,,
+8150,"NAD83(HARN) / WISCRS Marathon (ftUS)",9003,4152,7457,9801,1,0,4497,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,245000,9003,8807,180607.47,9003,,,,,,,,,,,,,
+8151,"NAD83(HARN) / WISCRS Lincoln (m)",9001,4152,7454,9807,1,0,4499,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,116129.0323,9001,8807,0.0058,9001,,,,,,,,,,,,,
+8152,"NAD83(HARN) / WISCRS Lincoln (ftUS)",9003,4152,7455,9807,1,0,4497,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,381000,9003,8807,0.019,9003,,,,,,,,,,,,,
+8153,"NAD83(HARN) / WISCRS Langlade (m)",9001,4152,7452,9801,1,0,4499,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,198425.197,9001,8807,105279.7829,9001,,,,,,,,,,,,,
+8154,"NAD83(HARN) / WISCRS Langlade (ftUS)",9003,4152,7453,9801,1,0,4497,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,651000,9003,8807,345405.421,9003,,,,,,,,,,,,,
+8155,"NAD83(HARN) / WISCRS La Crosse (m)",9001,4152,7508,9807,1,0,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,,,,,,,,
+8156,"NAD83(HARN) / WISCRS La Crosse (ftUS)",9003,4152,7509,9807,1,0,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,,,,,,,,
+8157,"NAD83(HARN) / WISCRS Kewaunee, Manitowoc and Sheboygan (m)",9001,4152,7506,9807,1,0,4499,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,79857.7614,9001,8807,0.0012,9001,,,,,,,,,,,,,
+8158,"NAD83(HARN) / WISCRS Kewaunee, Manitowoc and Sheboygan (ftUS)",9003,4152,7507,9807,1,0,4497,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,262000.006,9003,8807,0.004,9003,,,,,,,,,,,,,
+8159,"NAD83(HARN) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (m)",9001,4152,7504,9807,1,0,4499,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,185928.3728,9001,8807,0.0009,9001,,,,,,,,,,,,,
+8160,"NAD83(HARN) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (ftUS)",9003,4152,7505,9807,1,0,4497,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,610000.003,9003,8807,0.003,9003,,,,,,,,,,,,,
+8161,"NAD83(HARN) / WISCRS Jackson (m)",9001,4152,7450,9807,1,0,4499,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,27000,9001,8807,25000,9001,,,,,,,,,,,,,
+8162,"NAD83(HARN) / WISCRS Jackson (ftUS)",9003,4152,7451,9807,1,0,4497,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,88582.5,9003,8807,82020.833,9003,,,,,,,,,,,,,
+8163,"NAD83(HARN) / WISCRS Iron (m)",9001,4152,7390,9807,1,0,4499,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,220980.4419,9001,8807,0.0085,9001,,,,,,,,,,,,,
+8164,"NAD83(HARN) / WISCRS Iron (ftUS)",9003,4152,7391,9807,1,0,4497,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,725000,9003,8807,0.028,9003,,,,,,,,,,,,,
+8165,"NAD83(HARN) / WISCRS Iowa (m)",9001,4152,7502,9807,1,0,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,,,,,,,,
+8166,"NAD83(HARN) / WISCRS Iowa (ftUS)",9003,4152,7503,9807,1,0,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,,,,,,,,
+8167,"NAD83(HARN) / WISCRS Green Lake and Marquette (m)",9001,4152,7500,9801,1,0,4499,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,150876.3018,9001,8807,79170.7795,9001,,,,,,,,,,,,,
+8168,"NAD83(HARN) / WISCRS Green Lake and Marquette (ftUS)",9003,4152,7501,9801,1,0,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,,,,,,,,
+8169,"NAD83(HARN) / WISCRS Green and Lafayette (m)",9001,4152,7498,9801,1,0,4499,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,170078.7403,9001,8807,45830.2947,9001,,,,,,,,,,,,,
+8170,"NAD83(HARN) / WISCRS Green and Lafayette (ftUS)",9003,4152,7499,9801,1,0,4497,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,558000,9003,8807,150361.559,9003,,,,,,,,,,,,,
+8171,"NAD83(HARN) / WISCRS Grant (m)",9001,4152,7496,9807,1,0,4499,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,242316.4841,9001,8807,0.01,9001,,,,,,,,,,,,,
+8172,"NAD83(HARN) / WISCRS Grant (ftUS)",9003,4152,7497,9807,1,0,4497,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,794999.998,9003,8807,0.033,9003,,,,,,,,,,,,,
+8173,"NAD83(HARN) / WISCRS Forest (m)",9001,4152,7388,9807,1,0,4499,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,275844.5533,9001,8807,0.0157,9001,,,,,,,,,,,,,
+8177,"NAD83(HARN) / WISCRS Forest (ftUS)",9003,4152,7389,9807,1,0,4497,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,905000.005,9003,8807,0.052,9003,,,,,,,,,,,,,
+8179,"NAD83(HARN) / WISCRS Dunn (m)",9001,4152,7438,9807,1,0,4499,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,51816.104,9001,8807,0.003,9001,,,,,,,,,,,,,
+8180,"NAD83(HARN) / WISCRS Dunn (ftUS)",9003,4152,7439,9807,1,0,4497,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,170000.001,9003,8807,0.01,9003,,,,,,,,,,,,,
+8181,"NAD83(HARN) / WISCRS Douglas (m)",9001,4152,7384,9807,1,0,4499,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,59131.3183,9001,8807,0.0041,9001,,,,,,,,,,,,,
+8182,"NAD83(HARN) / WISCRS Douglas (ftUS)",9003,4152,7385,9807,1,0,4497,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,194000,9003,8807,0.013,9003,,,,,,,,,,,,,
+8184,"NAD83(HARN) / WISCRS Door (m)",9001,4152,7436,9807,1,0,4499,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,158801.1176,9001,8807,0.0023,9001,,,,,,,,,,,,,
+8185,"NAD83(HARN) / WISCRS Door (ftUS)",9003,4152,7437,9807,1,0,4497,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,521000,9003,8807,0.008,9003,,,,,,,,,,,,,
+8187,"NAD83(HARN) / WISCRS Dodge and Jefferson (m)",9001,4152,7494,9807,1,0,4499,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,263347.7263,9001,8807,0.0076,9001,,,,,,,,,,,,,
+8189,"NAD83(HARN) / WISCRS Dodge and Jefferson (ftUS)",9003,4152,7495,9807,1,0,4497,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,863999.999,9003,8807,0.025,9003,,,,,,,,,,,,,
+8191,"NAD83(HARN) / WISCRS Dane (m)",9001,4152,7492,9801,1,0,4499,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,247193.2944,9001,8807,146591.9896,9001,,,,,,,,,,,,,
+8193,"NAD83(HARN) / WISCRS Dane (ftUS)",9003,4152,7493,9801,1,0,4497,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,811000,9003,8807,480943.886,9003,,,,,,,,,,,,,
+8196,"NAD83(HARN) / WISCRS Crawford (m)",9001,4152,7490,9801,1,0,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,,,,,,,,
+8197,"NAD83(HARN) / WISCRS Crawford (ftUS)",9003,4152,7491,9801,1,0,4497,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,373000,9003,8807,176190.987,9003,,,,,,,,,,,,,
+8198,"NAD83(HARN) / WISCRS Columbia (m)",9001,4152,7488,9801,1,0,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,,,,,,,,
+8200,"NAD83(HARN) / WISCRS Columbia (ftUS)",9003,4152,7489,9801,1,0,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,,,,,,,,
+8201,"NAD83(HARN) / WISCRS Clark (m)",9001,4152,7434,9807,1,0,4499,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,199949.1989,9001,8807,0.0086,9001,,,,,,,,,,,,,
+8202,"NAD83(HARN) / WISCRS Clark (ftUS)",9003,4152,7435,9807,1,0,4497,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,655999.997,9003,8807,0.028,9003,,,,,,,,,,,,,
+8203,"NAD83(HARN) / WISCRS Chippewa (m)",9001,4152,7432,9801,1,0,4499,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,60045.72,9001,8807,44091.4346,9001,,,,,,,,,,,,,
+8204,"NAD83(HARN) / WISCRS Chippewa (ftUS)",9003,4152,7433,9801,1,0,4497,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,197000,9003,8807,144656.648,9003,,,,,,,,,,,,,
+8205,"NAD83(HARN) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (m)",9001,4152,7486,9807,1,0,4499,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,244754.8893,9001,8807,0.0049,9001,,,,,,,,,,,,,
+8206,"NAD83(HARN) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (ftUS)",9003,4152,7487,9807,1,0,4497,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,802999.999,9003,8807,0.016,9003,,,,,,,,,,,,,
+8207,"NAD83(HARN) / WISCRS Burnett (m)",9001,4152,7382,9801,1,0,4499,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,64008.1276,9001,8807,59445.9043,9001,,,,,,,,,,,,,
+8208,"NAD83(HARN) / WISCRS Burnett (ftUS)",9003,4152,7383,9801,1,0,4497,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,209999.999,9003,8807,195032.104,9003,,,,,,,,,,,,,
+8209,"NAD83(HARN) / WISCRS Buffalo (m)",9001,4152,7430,9807,1,0,4499,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,175260.3502,9001,8807,0.0048,9001,,,,,,,,,,,,,
+8210,"NAD83(HARN) / WISCRS Buffalo (ftUS)",9003,4152,7431,9807,1,0,4497,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,574999.999,9003,8807,0.016,9003,,,,,,,,,,,,,
+8212,"NAD83(HARN) / WISCRS Brown (m)",9001,4152,7428,9807,1,0,4499,8801,43,9102,8802,-88,9102,8805,1.00002,9201,8806,31600,9001,8807,4600,9001,,,,,,,,,,,,,
+8213,"NAD83(HARN) / WISCRS Brown (ftUS)",9003,4152,7429,9807,1,0,4497,8801,43,9110,8802,-88,9110,8805,1.00002,9201,8806,103674.333,9003,8807,15091.833,9003,,,,,,,,,,,,,
+8214,"NAD83(HARN) / WISCRS Bayfield (m)",9001,4152,7380,9801,1,0,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,,,,,,,,
+8216,"NAD83(HARN) / WISCRS Bayfield (ftUS)",9003,4152,7381,9801,1,0,4497,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,750000.001,9003,8807,487372.659,9003,,,,,,,,,,,,,
+8218,"NAD83(HARN) / WISCRS Barron (m)",9001,4152,7426,9807,1,0,4499,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,93150,9001,8807,0.0029,9001,,,,,,,,,,,,,
+8220,"NAD83(HARN) / WISCRS Barron (ftUS)",9003,4152,7427,9807,1,0,4497,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,305609.625,9003,8807,0.01,9003,,,,,,,,,,,,,
+8222,"NAD83(HARN) / WISCRS Ashland (m)",9001,4152,7378,9807,1,0,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,,,,,,,,
+8224,"NAD83(HARN) / WISCRS Ashland (ftUS)",9003,4152,7379,9807,1,0,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,,,,,,,,
+8225,"NAD83(HARN) / WISCRS Adams and Juneau (m)",9001,4152,7484,9807,1,0,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,,,,,,,,
+8226,"NAD83(HARN) / WISCRS Adams and Juneau (ftUS)",9003,4152,7485,9807,1,0,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,,,,,,,,
+8311,"NAD83(2011) / Oregon Burns-Harper zone (m)",9001,6318,8273,9807,1,0,4499,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,90000,9001,8807,0,9001,,,,,,,,,,,,,
+8312,"NAD83(2011) / Oregon Burns-Harper zone (ft)",9002,6318,8274,9807,1,0,4495,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,295275.5906,9002,8807,0,9002,,,,,,,,,,,,,
+8313,"NAD83(2011) / Oregon Canyon City-Burns zone (m)",9001,6318,8275,9807,1,0,4499,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,,
+8314,"NAD83(2011) / Oregon Canyon City-Burns zone (ft)",9002,6318,8276,9807,1,0,4495,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,,
+8315,"NAD83(2011) / Oregon Coast Range North zone (m)",9001,6318,8277,9801,1,0,4499,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,30000,9001,8807,20000,9001,,,,,,,,,,,,,
+8316,"NAD83(2011) / Oregon Coast Range North zone (ft)",9002,6318,8278,9801,1,0,4495,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,98425.1969,9002,8807,65616.7979,9002,,,,,,,,,,,,,
+8317,"NAD83(2011) / Oregon Dayville-Prairie City zone (m)",9001,6318,8279,9807,1,0,4499,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,,
+8318,"NAD83(2011) / Oregon Dayville-Prairie City zone (ft)",9002,6318,8280,9807,1,0,4495,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,,
+8319,"NAD83(2011) / Oregon Denio-Burns zone (m)",9001,6318,8281,9807,1,0,4499,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,,
+8320,"NAD83(2011) / Oregon Denio-Burns zone (ft)",9002,6318,8282,9807,1,0,4495,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,,
+8321,"NAD83(2011) / Oregon Halfway zone (m)",9001,6318,8283,9801,1,0,4499,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,40000,9001,8807,70000,9001,,,,,,,,,,,,,
+8322,"NAD83(2011) / Oregon Halfway zone (ft)",9002,6318,8284,9801,1,0,4495,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,131233.5958,9002,8807,229658.7927,9002,,,,,,,,,,,,,
+8323,"NAD83(2011) / Oregon Medford-Diamond Lake zone (m)",9001,6318,8285,9801,1,0,4499,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,60000,9001,8807,-60000,9001,,,,,,,,,,,,,
+8324,"NAD83(2011) / Oregon Medford-Diamond Lake zone (ft)",9002,6318,8286,9801,1,0,4495,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,196850.3937,9002,8807,-196850.3937,9002,,,,,,,,,,,,,
+8325,"NAD83(2011) / Oregon Mitchell zone (m)",9001,6318,8287,9801,1,0,4499,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,30000,9001,8807,290000,9001,,,,,,,,,,,,,
+8326,"NAD83(2011) / Oregon Mitchell zone (ft)",9002,6318,8288,9801,1,0,4495,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,98425.1969,9002,8807,951443.5696,9002,,,,,,,,,,,,,
+8327,"NAD83(2011) / Oregon North Central zone (m)",9001,6318,8289,9801,1,0,4499,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,100000,9001,8807,140000,9001,,,,,,,,,,,,,
+8328,"NAD83(2011) / Oregon North Central zone (ft)",9002,6318,8290,9801,1,0,4495,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,328083.9895,9002,8807,459317.5853,9002,,,,,,,,,,,,,
+8329,"NAD83(2011) / Oregon Ochoco Summit zone (m)",9001,6318,8291,9801,1,0,4499,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,40000,9001,8807,-80000,9001,,,,,,,,,,,,,
+8330,"NAD83(2011) / Oregon Ochoco Summit zone (ft)",9002,6318,8292,9801,1,0,4495,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,131233.5958,9002,8807,-262467.1916,9002,,,,,,,,,,,,,
+8331,"NAD83(2011) / Oregon Owyhee zone (m)",9001,6318,8293,9807,1,0,4499,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,70000,9001,8807,0,9001,,,,,,,,,,,,,
+8332,"NAD83(2011) / Oregon Owyhee zone (ft)",9002,6318,8294,9807,1,0,4495,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,229658.7927,9002,8807,0,9002,,,,,,,,,,,,,
+8333,"NAD83(2011) / Oregon Pilot Rock-Ukiah zone (m)",9001,6318,8295,9801,1,0,4499,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,50000,9001,8807,130000,9001,,,,,,,,,,,,,
+8334,"NAD83(2011) / Oregon Pilot Rock-Ukiah zone (ft)",9002,6318,8296,9801,1,0,4495,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,164041.9948,9002,8807,426509.1864,9002,,,,,,,,,,,,,
+8335,"NAD83(2011) / Oregon Prairie City-Brogan zone (m)",9001,6318,8297,9801,1,0,4499,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,,
+8336,"NAD83(2011) / Oregon Prairie City-Brogan zone (ft)",9002,6318,8298,9801,1,0,4495,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,,
+8337,"NAD83(2011) / Oregon Riley-Lakeview zone (m)",9001,6318,8299,9807,1,0,4499,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,70000,9001,8807,0,9001,,,,,,,,,,,,,
+8338,"NAD83(2011) / Oregon Riley-Lakeview zone (ft)",9002,6318,8300,9807,1,0,4495,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,229658.7927,9002,8807,0,9002,,,,,,,,,,,,,
+8339,"NAD83(2011) / Oregon Siskiyou Pass zone (m)",9001,6318,8301,9801,1,0,4499,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,10000,9001,8807,60000,9001,,,,,,,,,,,,,
+8340,"NAD83(2011) / Oregon Siskiyou Pass zone (ft)",9002,6318,8302,9801,1,0,4495,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,32808.399,9002,8807,196850.3937,9002,,,,,,,,,,,,,
+8341,"NAD83(2011) / Oregon Ukiah-Fox zone (m)",9001,6318,8303,9801,1,0,4499,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,30000,9001,8807,90000,9001,,,,,,,,,,,,,
+8342,"NAD83(2011) / Oregon Ukiah-Fox zone (ft)",9002,6318,8304,9801,1,0,4495,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,98425.1969,9002,8807,295275.5906,9002,,,,,,,,,,,,,
+8343,"NAD83(2011) / Oregon Wallowa zone (m)",9001,6318,8305,9807,1,0,4499,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,,
+8344,"NAD83(2011) / Oregon Wallowa zone (ft)",9002,6318,8306,9807,1,0,4495,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,,
+8345,"NAD83(2011) / Oregon Warner Highway zone (m)",9001,6318,8307,9801,1,0,4499,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,40000,9001,8807,60000,9001,,,,,,,,,,,,,
+8346,"NAD83(2011) / Oregon Warner Highway zone (ft)",9002,6318,8308,9801,1,0,4495,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,131233.5958,9002,8807,196850.3937,9002,,,,,,,,,,,,,
+8347,"NAD83(2011) / Oregon Willamette Pass zone (m)",9001,6318,8309,9807,1,0,4499,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,,
+8348,"NAD83(2011) / Oregon Willamette Pass zone (ft)",9002,6318,8310,9807,1,0,4495,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,,
+20004,"Pulkovo 1995 / Gauss-Kruger zone 4",9001,4200,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+20005,"Pulkovo 1995 / Gauss-Kruger zone 5",9001,4200,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+20006,"Pulkovo 1995 / Gauss-Kruger zone 6",9001,4200,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+20007,"Pulkovo 1995 / Gauss-Kruger zone 7",9001,4200,16207,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+20008,"Pulkovo 1995 / Gauss-Kruger zone 8",9001,4200,16208,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+20009,"Pulkovo 1995 / Gauss-Kruger zone 9",9001,4200,16209,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+20010,"Pulkovo 1995 / Gauss-Kruger zone 10",9001,4200,16210,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+20011,"Pulkovo 1995 / Gauss-Kruger zone 11",9001,4200,16211,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+20012,"Pulkovo 1995 / Gauss-Kruger zone 12",9001,4200,16212,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+20013,"Pulkovo 1995 / Gauss-Kruger zone 13",9001,4200,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+20014,"Pulkovo 1995 / Gauss-Kruger zone 14",9001,4200,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+20015,"Pulkovo 1995 / Gauss-Kruger zone 15",9001,4200,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+20016,"Pulkovo 1995 / Gauss-Kruger zone 16",9001,4200,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+20017,"Pulkovo 1995 / Gauss-Kruger zone 17",9001,4200,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+20018,"Pulkovo 1995 / Gauss-Kruger zone 18",9001,4200,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+20019,"Pulkovo 1995 / Gauss-Kruger zone 19",9001,4200,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+20020,"Pulkovo 1995 / Gauss-Kruger zone 20",9001,4200,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+20021,"Pulkovo 1995 / Gauss-Kruger zone 21",9001,4200,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+20022,"Pulkovo 1995 / Gauss-Kruger zone 22",9001,4200,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+20023,"Pulkovo 1995 / Gauss-Kruger zone 23",9001,4200,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+20024,"Pulkovo 1995 / Gauss-Kruger zone 24",9001,4200,16224,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,,
+20025,"Pulkovo 1995 / Gauss-Kruger zone 25",9001,4200,16225,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+20026,"Pulkovo 1995 / Gauss-Kruger zone 26",9001,4200,16226,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+20027,"Pulkovo 1995 / Gauss-Kruger zone 27",9001,4200,16227,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+20028,"Pulkovo 1995 / Gauss-Kruger zone 28",9001,4200,16228,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+20029,"Pulkovo 1995 / Gauss-Kruger zone 29",9001,4200,16229,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+20030,"Pulkovo 1995 / Gauss-Kruger zone 30",9001,4200,16230,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+20031,"Pulkovo 1995 / Gauss-Kruger zone 31",9001,4200,16231,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+20032,"Pulkovo 1995 / Gauss-Kruger zone 32",9001,4200,16232,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+20064,"Pulkovo 1995 / Gauss-Kruger 4N",9001,4200,16304,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20065,"Pulkovo 1995 / Gauss-Kruger 5N",9001,4200,16305,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20066,"Pulkovo 1995 / Gauss-Kruger 6N",9001,4200,16306,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20067,"Pulkovo 1995 / Gauss-Kruger 7N",9001,4200,16307,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20068,"Pulkovo 1995 / Gauss-Kruger 8N",9001,4200,16308,9807,1,1,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20069,"Pulkovo 1995 / Gauss-Kruger 9N",9001,4200,16309,9807,1,1,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20070,"Pulkovo 1995 / Gauss-Kruger 10N",9001,4200,16310,9807,1,1,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20071,"Pulkovo 1995 / Gauss-Kruger 11N",9001,4200,16311,9807,1,1,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20072,"Pulkovo 1995 / Gauss-Kruger 12N",9001,4200,16312,9807,1,1,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20073,"Pulkovo 1995 / Gauss-Kruger 13N",9001,4200,16313,9807,1,1,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20074,"Pulkovo 1995 / Gauss-Kruger 14N",9001,4200,16314,9807,1,1,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20075,"Pulkovo 1995 / Gauss-Kruger 15N",9001,4200,16315,9807,1,1,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20076,"Pulkovo 1995 / Gauss-Kruger 16N",9001,4200,16316,9807,1,1,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20077,"Pulkovo 1995 / Gauss-Kruger 17N",9001,4200,16317,9807,1,1,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20078,"Pulkovo 1995 / Gauss-Kruger 18N",9001,4200,16318,9807,1,1,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20079,"Pulkovo 1995 / Gauss-Kruger 19N",9001,4200,16319,9807,1,1,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20080,"Pulkovo 1995 / Gauss-Kruger 20N",9001,4200,16320,9807,1,1,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20081,"Pulkovo 1995 / Gauss-Kruger 21N",9001,4200,16321,9807,1,1,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20082,"Pulkovo 1995 / Gauss-Kruger 22N",9001,4200,16322,9807,1,1,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20083,"Pulkovo 1995 / Gauss-Kruger 23N",9001,4200,16323,9807,1,1,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20084,"Pulkovo 1995 / Gauss-Kruger 24N",9001,4200,16324,9807,1,1,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20085,"Pulkovo 1995 / Gauss-Kruger 25N",9001,4200,16325,9807,1,1,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20086,"Pulkovo 1995 / Gauss-Kruger 26N",9001,4200,16326,9807,1,1,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20087,"Pulkovo 1995 / Gauss-Kruger 27N",9001,4200,16327,9807,1,1,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20088,"Pulkovo 1995 / Gauss-Kruger 28N",9001,4200,16328,9807,1,1,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20089,"Pulkovo 1995 / Gauss-Kruger 29N",9001,4200,16329,9807,1,1,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20090,"Pulkovo 1995 / Gauss-Kruger 30N",9001,4200,16330,9807,1,1,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20091,"Pulkovo 1995 / Gauss-Kruger 31N",9001,4200,16331,9807,1,1,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20092,"Pulkovo 1995 / Gauss-Kruger 32N",9001,4200,16332,9807,1,1,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20135,"Adindan / UTM zone 35N",9001,4201,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20136,"Adindan / UTM zone 36N",9001,4201,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20137,"Adindan / UTM zone 37N",9001,4201,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20138,"Adindan / UTM zone 38N",9001,4201,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20248,"AGD66 / AMG zone 48",9001,4202,17448,9807,1,1,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20249,"AGD66 / AMG zone 49",9001,4202,17449,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20250,"AGD66 / AMG zone 50",9001,4202,17450,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20251,"AGD66 / AMG zone 51",9001,4202,17451,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20252,"AGD66 / AMG zone 52",9001,4202,17452,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20253,"AGD66 / AMG zone 53",9001,4202,17453,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20254,"AGD66 / AMG zone 54",9001,4202,17454,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20255,"AGD66 / AMG zone 55",9001,4202,17455,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20256,"AGD66 / AMG zone 56",9001,4202,17456,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20257,"AGD66 / AMG zone 57",9001,4202,17457,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20258,"AGD66 / AMG zone 58",9001,4202,17458,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20348,"AGD84 / AMG zone 48",9001,4203,17448,9807,1,1,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20349,"AGD84 / AMG zone 49",9001,4203,17449,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20350,"AGD84 / AMG zone 50",9001,4203,17450,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20351,"AGD84 / AMG zone 51",9001,4203,17451,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20352,"AGD84 / AMG zone 52",9001,4203,17452,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20353,"AGD84 / AMG zone 53",9001,4203,17453,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20354,"AGD84 / AMG zone 54",9001,4203,17454,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20355,"AGD84 / AMG zone 55",9001,4203,17455,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20356,"AGD84 / AMG zone 56",9001,4203,17456,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20357,"AGD84 / AMG zone 57",9001,4203,17457,9807,1,1,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20358,"AGD84 / AMG zone 58",9001,4203,17458,9807,1,1,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20436,"Ain el Abd / UTM zone 36N",9001,4204,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20437,"Ain el Abd / UTM zone 37N",9001,4204,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20438,"Ain el Abd / UTM zone 38N",9001,4204,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20439,"Ain el Abd / UTM zone 39N",9001,4204,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20440,"Ain el Abd / UTM zone 40N",9001,4204,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20499,"Ain el Abd / Bahrain Grid",9001,4204,19900,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20538,"Afgooye / UTM zone 38N",9001,4205,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20539,"Afgooye / UTM zone 39N",9001,4205,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+20790,"Lisbon (Lisbon) / Portuguese National Grid",9001,4803,19936,9807,1,0,4499,8801,39.4,9110,8802,1,9110,8805,1,9201,8806,200000,9001,8807,300000,9001,,,,,,,,,,,,,
+20791,"Lisbon (Lisbon) / Portuguese Grid",9001,4803,19969,9807,1,0,4499,8801,39.4,9110,8802,1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+20822,"Aratu / UTM zone 22S",9001,4208,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20823,"Aratu / UTM zone 23S",9001,4208,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20824,"Aratu / UTM zone 24S",9001,4208,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20934,"Arc 1950 / UTM zone 34S",9001,4209,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20935,"Arc 1950 / UTM zone 35S",9001,4209,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+20936,"Arc 1950 / UTM zone 36S",9001,4209,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21035,"Arc 1960 / UTM zone 35S",9001,4210,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21036,"Arc 1960 / UTM zone 36S",9001,4210,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21037,"Arc 1960 / UTM zone 37S",9001,4210,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21095,"Arc 1960 / UTM zone 35N",9001,4210,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21096,"Arc 1960 / UTM zone 36N",9001,4210,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21097,"Arc 1960 / UTM zone 37N",9001,4210,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21100,"Batavia (Jakarta) / NEIEZ",9001,4813,19905,9804,1,1,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+21148,"Batavia / UTM zone 48S",9001,4211,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21149,"Batavia / UTM zone 49S",9001,4211,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21150,"Batavia / UTM zone 50S",9001,4211,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+21291,"Barbados 1938 / British West Indies Grid",9001,4212,19942,9807,1,0,4400,8801,0,9102,8802,-62,9102,8805,0.9995,9201,8806,400000,9001,8807,0,9001,,,,,,,,,,,,,
+21292,"Barbados 1938 / Barbados National Grid",9001,4212,19943,9807,1,0,4400,8801,13.1035,9110,8802,-59.3335,9110,8805,0.9999986,9201,8806,30000,9001,8807,75000,9001,,,,,,,,,,,,,
+21413,"Beijing 1954 / Gauss-Kruger zone 13",9001,4214,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+21414,"Beijing 1954 / Gauss-Kruger zone 14",9001,4214,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+21415,"Beijing 1954 / Gauss-Kruger zone 15",9001,4214,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+21416,"Beijing 1954 / Gauss-Kruger zone 16",9001,4214,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+21417,"Beijing 1954 / Gauss-Kruger zone 17",9001,4214,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+21418,"Beijing 1954 / Gauss-Kruger zone 18",9001,4214,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+21419,"Beijing 1954 / Gauss-Kruger zone 19",9001,4214,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+21420,"Beijing 1954 / Gauss-Kruger zone 20",9001,4214,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+21421,"Beijing 1954 / Gauss-Kruger zone 21",9001,4214,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+21422,"Beijing 1954 / Gauss-Kruger zone 22",9001,4214,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+21423,"Beijing 1954 / Gauss-Kruger zone 23",9001,4214,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+21453,"Beijing 1954 / Gauss-Kruger CM 75E",9001,4214,16313,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21454,"Beijing 1954 / Gauss-Kruger CM 81E",9001,4214,16314,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21455,"Beijing 1954 / Gauss-Kruger CM 87E",9001,4214,16315,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21456,"Beijing 1954 / Gauss-Kruger CM 93E",9001,4214,16316,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21457,"Beijing 1954 / Gauss-Kruger CM 99E",9001,4214,16317,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21458,"Beijing 1954 / Gauss-Kruger CM 105E",9001,4214,16318,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21459,"Beijing 1954 / Gauss-Kruger CM 111E",9001,4214,16319,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21460,"Beijing 1954 / Gauss-Kruger CM 117E",9001,4214,16320,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21461,"Beijing 1954 / Gauss-Kruger CM 123E",9001,4214,16321,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21462,"Beijing 1954 / Gauss-Kruger CM 129E",9001,4214,16322,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21463,"Beijing 1954 / Gauss-Kruger CM 135E",9001,4214,16323,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21473,"Beijing 1954 / Gauss-Kruger 13N",9001,4214,16313,9807,1,1,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21474,"Beijing 1954 / Gauss-Kruger 14N",9001,4214,16314,9807,1,1,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21475,"Beijing 1954 / Gauss-Kruger 15N",9001,4214,16315,9807,1,1,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21476,"Beijing 1954 / Gauss-Kruger 16N",9001,4214,16316,9807,1,1,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21477,"Beijing 1954 / Gauss-Kruger 17N",9001,4214,16317,9807,1,1,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21478,"Beijing 1954 / Gauss-Kruger 18N",9001,4214,16318,9807,1,1,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21479,"Beijing 1954 / Gauss-Kruger 19N",9001,4214,16319,9807,1,1,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21480,"Beijing 1954 / Gauss-Kruger 20N",9001,4214,16320,9807,1,1,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21481,"Beijing 1954 / Gauss-Kruger 21N",9001,4214,16321,9807,1,1,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21482,"Beijing 1954 / Gauss-Kruger 22N",9001,4214,16322,9807,1,1,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21483,"Beijing 1954 / Gauss-Kruger 23N",9001,4214,16323,9807,1,1,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21500,"Belge 1950 (Brussels) / Belge Lambert 50",9001,4809,19901,9802,1,0,4499,8821,90,9110,8822,0,9110,8823,49.5,9110,8824,51.1,9110,8826,150000,9001,8827,5400000,9001,,,,,,,,,,
+21780,"Bern 1898 (Bern) / LV03C",9001,4801,19923,9815,1,0,4498,8811,46.570866,9110,8812,0,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,0,9001,8817,0,9001,,,,,,,
+21781,"CH1903 / LV03",9001,4149,19922,9815,1,0,4498,8811,46.570866,9110,8812,7.26225,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,600000,9001,8817,200000,9001,,,,,,,
+21782,"CH1903 / LV03C-G",9001,4149,19841,9815,1,0,4498,8811,46.570866,9110,8812,7.26225,9110,8813,90,9110,8814,90,9110,8815,1,9201,8816,0,9001,8817,0,9001,,,,,,,
+21817,"Bogota 1975 / UTM zone 17N",9001,4218,16017,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21818,"Bogota 1975 / UTM zone 18N",9001,4218,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+21891,"Bogota 1975 / Colombia West zone",9001,4218,18051,9807,1,1,4499,8801,4.355657,9110,8802,-77.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21892,"Bogota 1975 / Colombia Bogota zone",9001,4218,18052,9807,1,1,4499,8801,4.355657,9110,8802,-74.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21893,"Bogota 1975 / Colombia East Central zone",9001,4218,18053,9807,1,1,4499,8801,4.355657,9110,8802,-71.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21894,"Bogota 1975 / Colombia East",9001,4218,18054,9807,1,1,4499,8801,4.355657,9110,8802,-68.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21896,"Bogota 1975 / Colombia West zone",9001,4218,18051,9807,1,0,4530,8801,4.355657,9110,8802,-77.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21897,"Bogota 1975 / Colombia Bogota zone",9001,4218,18052,9807,1,0,4530,8801,4.355657,9110,8802,-74.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21898,"Bogota 1975 / Colombia East Central zone",9001,4218,18053,9807,1,0,4530,8801,4.355657,9110,8802,-71.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+21899,"Bogota 1975 / Colombia East",9001,4218,18054,9807,1,0,4530,8801,4.355657,9110,8802,-68.04513,9110,8805,1,9201,8806,1000000,9001,8807,1000000,9001,,,,,,,,,,,,,
+22032,"Camacupa / UTM zone 32S",9001,4220,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22033,"Camacupa / UTM zone 33S",9001,4220,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22091,"Camacupa / TM 11.30 SE",9001,4220,16611,9807,1,0,4400,8801,0,9110,8802,11.3,9110,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22092,"Camacupa / TM 12 SE",9001,4220,16612,9807,1,0,4400,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22171,"POSGAR 98 / Argentina 1",9001,4190,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+22172,"POSGAR 98 / Argentina 2",9001,4190,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+22173,"POSGAR 98 / Argentina 3",9001,4190,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+22174,"POSGAR 98 / Argentina 4",9001,4190,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+22175,"POSGAR 98 / Argentina 5",9001,4190,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+22176,"POSGAR 98 / Argentina 6",9001,4190,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+22177,"POSGAR 98 / Argentina 7",9001,4190,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+22181,"POSGAR 94 / Argentina 1",9001,4694,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+22182,"POSGAR 94 / Argentina 2",9001,4694,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+22183,"POSGAR 94 / Argentina 3",9001,4694,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+22184,"POSGAR 94 / Argentina 4",9001,4694,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+22185,"POSGAR 94 / Argentina 5",9001,4694,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+22186,"POSGAR 94 / Argentina 6",9001,4694,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+22187,"POSGAR 94 / Argentina 7",9001,4694,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+22191,"Campo Inchauspe / Argentina 1",9001,4221,18031,9807,1,0,4530,8801,-90,9102,8802,-72,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+22192,"Campo Inchauspe / Argentina 2",9001,4221,18032,9807,1,0,4530,8801,-90,9102,8802,-69,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+22193,"Campo Inchauspe / Argentina 3",9001,4221,18033,9807,1,0,4530,8801,-90,9102,8802,-66,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+22194,"Campo Inchauspe / Argentina 4",9001,4221,18034,9807,1,0,4530,8801,-90,9102,8802,-63,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+22195,"Campo Inchauspe / Argentina 5",9001,4221,18035,9807,1,0,4530,8801,-90,9102,8802,-60,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+22196,"Campo Inchauspe / Argentina 6",9001,4221,18036,9807,1,0,4530,8801,-90,9102,8802,-57,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+22197,"Campo Inchauspe / Argentina 7",9001,4221,18037,9807,1,0,4530,8801,-90,9102,8802,-54,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+22234,"Cape / UTM zone 34S",9001,4222,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22235,"Cape / UTM zone 35S",9001,4222,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22236,"Cape / UTM zone 36S",9001,4222,16136,9807,1,1,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22275,"Cape / Lo15",9001,4222,17515,9808,1,0,6503,8801,0,9102,8802,15,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22277,"Cape / Lo17",9001,4222,17517,9808,1,0,6503,8801,0,9102,8802,17,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22279,"Cape / Lo19",9001,4222,17519,9808,1,0,6503,8801,0,9102,8802,19,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22281,"Cape / Lo21",9001,4222,17521,9808,1,0,6503,8801,0,9102,8802,21,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22283,"Cape / Lo23",9001,4222,17523,9808,1,0,6503,8801,0,9102,8802,23,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22285,"Cape / Lo25",9001,4222,17525,9808,1,0,6503,8801,0,9102,8802,25,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22287,"Cape / Lo27",9001,4222,17527,9808,1,0,6503,8801,0,9102,8802,27,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22289,"Cape / Lo29",9001,4222,17529,9808,1,0,6503,8801,0,9102,8802,29,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22291,"Cape / Lo31",9001,4222,17531,9808,1,0,6503,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22293,"Cape / Lo33",9001,4222,17533,9808,1,0,6503,8801,0,9102,8802,33,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22300,"Carthage (Paris) / Tunisia Mining Grid",9036,4816,19937,9816,1,0,4406,8821,36.5964,9105,8822,7.83445,9105,8826,270,9036,8827,360,9036,,,,,,,,,,,,,,,,
+22332,"Carthage / UTM zone 32N",9001,4223,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+22391,"Carthage / Nord Tunisie",9001,4223,18181,9801,1,0,4499,8801,40,9105,8802,11,9105,8805,0.999625544,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+22392,"Carthage / Sud Tunisie",9001,4223,18182,9801,1,0,4499,8801,37,9105,8802,11,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+22521,"Corrego Alegre 1970-72 / UTM zone 21S",9001,4225,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22522,"Corrego Alegre 1970-72 / UTM zone 22S",9001,4225,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22523,"Corrego Alegre 1970-72 / UTM zone 23S",9001,4225,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22524,"Corrego Alegre 1970-72 / UTM zone 24S",9001,4225,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22525,"Corrego Alegre 1970-72 / UTM zone 25S",9001,4225,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+22700,"Deir ez Zor / Levant Zone",9001,4227,19940,9817,1,0,4499,8801,34.39,9110,8802,37.21,9110,8805,0.9996256,9201,8806,300000,9001,8807,300000,9001,,,,,,,,,,,,,
+22770,"Deir ez Zor / Syria Lambert",9001,4227,19948,9801,1,0,4499,8801,34.39,9110,8802,37.21,9110,8805,0.9996256,9201,8806,300000,9001,8807,300000,9001,,,,,,,,,,,,,
+22780,"Deir ez Zor / Levant Stereographic",9001,4227,19949,9809,1,0,4499,8801,38,9105,8802,43.5,9105,8805,0.9995341,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+22832,"Douala / UTM zone 32N",9001,4228,16032,9807,1,1,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+22991,"Egypt 1907 / Blue Belt",9001,4229,18071,9807,1,0,4400,8801,30,9102,8802,35,9102,8805,1,9201,8806,300000,9001,8807,1100000,9001,,,,,,,,,,,,,
+22992,"Egypt 1907 / Red Belt",9001,4229,18072,9807,1,0,4400,8801,30,9102,8802,31,9102,8805,1,9201,8806,615000,9001,8807,810000,9001,,,,,,,,,,,,,
+22993,"Egypt 1907 / Purple Belt",9001,4229,18073,9807,1,0,4400,8801,30,9102,8802,27,9102,8805,1,9201,8806,700000,9001,8807,200000,9001,,,,,,,,,,,,,
+22994,"Egypt 1907 / Extended Purple Belt",9001,4229,18074,9807,1,0,4400,8801,30,9102,8802,27,9102,8805,1,9201,8806,700000,9001,8807,1200000,9001,,,,,,,,,,,,,
+23028,"ED50 / UTM zone 28N",9001,4230,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23029,"ED50 / UTM zone 29N",9001,4230,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23030,"ED50 / UTM zone 30N",9001,4230,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23031,"ED50 / UTM zone 31N",9001,4230,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23032,"ED50 / UTM zone 32N",9001,4230,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23033,"ED50 / UTM zone 33N",9001,4230,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23034,"ED50 / UTM zone 34N",9001,4230,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23035,"ED50 / UTM zone 35N",9001,4230,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23036,"ED50 / UTM zone 36N",9001,4230,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23037,"ED50 / UTM zone 37N",9001,4230,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23038,"ED50 / UTM zone 38N",9001,4230,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23090,"ED50 / TM 0 N",9001,4230,16400,9807,1,0,4400,8801,0,9102,8802,0,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23095,"ED50 / TM 5 NE",9001,4230,16405,9807,1,0,4400,8801,0,9102,8802,5,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23239,"Fahud / UTM zone 39N",9001,4232,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23240,"Fahud / UTM zone 40N",9001,4232,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23433,"Garoua / UTM zone 33N",9001,4234,16033,9807,1,1,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23700,"HD72 / EOV",9001,4237,19931,9815,1,0,4498,8811,47.08398174,9110,8812,19.02548584,9110,8813,90,9110,8814,90,9110,8815,0.99993,9201,8816,650000,9001,8817,200000,9001,,,,,,,
+23830,"DGN95 / Indonesia TM-3 zone 46.2",9001,4755,17432,9807,1,0,4499,8801,0,9102,8802,94.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23831,"DGN95 / Indonesia TM-3 zone 47.1",9001,4755,17433,9807,1,0,4499,8801,0,9102,8802,97.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23832,"DGN95 / Indonesia TM-3 zone 47.2",9001,4755,17434,9807,1,0,4499,8801,0,9102,8802,100.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23833,"DGN95 / Indonesia TM-3 zone 48.1",9001,4755,17435,9807,1,0,4499,8801,0,9102,8802,103.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23834,"DGN95 / Indonesia TM-3 zone 48.2",9001,4755,17436,9807,1,0,4499,8801,0,9102,8802,106.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23835,"DGN95 / Indonesia TM-3 zone 49.1",9001,4755,17437,9807,1,0,4499,8801,0,9102,8802,109.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23836,"DGN95 / Indonesia TM-3 zone 49.2",9001,4755,17438,9807,1,0,4499,8801,0,9102,8802,112.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23837,"DGN95 / Indonesia TM-3 zone 50.1",9001,4755,17439,9807,1,0,4499,8801,0,9102,8802,115.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23838,"DGN95 / Indonesia TM-3 zone 50.2",9001,4755,17440,9807,1,0,4499,8801,0,9102,8802,118.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23839,"DGN95 / Indonesia TM-3 zone 51.1",9001,4755,17441,9807,1,0,4499,8801,0,9102,8802,121.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23840,"DGN95 / Indonesia TM-3 zone 51.2",9001,4755,17442,9807,1,0,4499,8801,0,9102,8802,124.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23841,"DGN95 / Indonesia TM-3 zone 52.1",9001,4755,17443,9807,1,0,4499,8801,0,9102,8802,127.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23842,"DGN95 / Indonesia TM-3 zone 52.2",9001,4755,17444,9807,1,0,4499,8801,0,9102,8802,130.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23843,"DGN95 / Indonesia TM-3 zone 53.1",9001,4755,17445,9807,1,0,4499,8801,0,9102,8802,133.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23844,"DGN95 / Indonesia TM-3 zone 53.2",9001,4755,17446,9807,1,0,4499,8801,0,9102,8802,136.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23845,"DGN95 / Indonesia TM-3 zone 54.1",9001,4755,17447,9807,1,0,4499,8801,0,9102,8802,139.5,9102,8805,0.9999,9201,8806,200000,9001,8807,1500000,9001,,,,,,,,,,,,,
+23846,"ID74 / UTM zone 46N",9001,4238,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23847,"ID74 / UTM zone 47N",9001,4238,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23848,"ID74 / UTM zone 48N",9001,4238,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23849,"ID74 / UTM zone 49N",9001,4238,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23850,"ID74 / UTM zone 50N",9001,4238,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23851,"ID74 / UTM zone 51N",9001,4238,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23852,"ID74 / UTM zone 52N",9001,4238,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23853,"ID74 / UTM zone 53N",9001,4238,16053,9807,1,1,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23866,"DGN95 / UTM zone 46N",9001,4755,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23867,"DGN95 / UTM zone 47N",9001,4755,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23868,"DGN95 / UTM zone 48N",9001,4755,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23869,"DGN95 / UTM zone 49N",9001,4755,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23870,"DGN95 / UTM zone 50N",9001,4755,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23871,"DGN95 / UTM zone 51N",9001,4755,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23872,"DGN95 / UTM zone 52N",9001,4755,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23877,"DGN95 / UTM zone 47S",9001,4755,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23878,"DGN95 / UTM zone 48S",9001,4755,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23879,"DGN95 / UTM zone 49S",9001,4755,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23880,"DGN95 / UTM zone 50S",9001,4755,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23881,"DGN95 / UTM zone 51S",9001,4755,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23882,"DGN95 / UTM zone 52S",9001,4755,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23883,"DGN95 / UTM zone 53S",9001,4755,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23884,"DGN95 / UTM zone 54S",9001,4755,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23886,"ID74 / UTM zone 46S",9001,4238,16146,9807,1,1,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23887,"ID74 / UTM zone 47S",9001,4238,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23888,"ID74 / UTM zone 48S",9001,4238,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23889,"ID74 / UTM zone 49S",9001,4238,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23890,"ID74 / UTM zone 50S",9001,4238,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23891,"ID74 / UTM zone 51S",9001,4238,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23892,"ID74 / UTM zone 52S",9001,4238,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23893,"ID74 / UTM zone 53S",9001,4238,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23894,"ID74 / UTM zone 54S",9001,4238,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+23946,"Indian 1954 / UTM zone 46N",9001,4239,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23947,"Indian 1954 / UTM zone 47N",9001,4239,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+23948,"Indian 1954 / UTM zone 48N",9001,4239,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24047,"Indian 1975 / UTM zone 47N",9001,4240,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24048,"Indian 1975 / UTM zone 48N",9001,4240,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24100,"Jamaica 1875 / Jamaica (Old Grid)",9005,4241,19909,9801,1,0,4403,8801,18,9102,8802,-77,9102,8805,1,9201,8806,550000,9005,8807,400000,9005,,,,,,,,,,,,,
+24200,"JAD69 / Jamaica National Grid",9001,4242,19910,9801,1,0,4400,8801,18,9102,8802,-77,9102,8805,1,9201,8806,250000,9001,8807,150000,9001,,,,,,,,,,,,,
+24305,"Kalianpur 1937 / UTM zone 45N",9001,4144,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24306,"Kalianpur 1937 / UTM zone 46N",9001,4144,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24311,"Kalianpur 1962 / UTM zone 41N",9001,4145,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24312,"Kalianpur 1962 / UTM zone 42N",9001,4145,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24313,"Kalianpur 1962 / UTM zone 43N",9001,4145,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24342,"Kalianpur 1975 / UTM zone 42N",9001,4146,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24343,"Kalianpur 1975 / UTM zone 43N",9001,4146,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24344,"Kalianpur 1975 / UTM zone 44N",9001,4146,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24345,"Kalianpur 1975 / UTM zone 45N",9001,4146,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24346,"Kalianpur 1975 / UTM zone 46N",9001,4146,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24347,"Kalianpur 1975 / UTM zone 47N",9001,4146,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24370,"Kalianpur 1880 / India zone 0",9084,4243,18110,9801,1,0,4408,8801,39.3,9110,8802,68,9110,8805,0.99846154,9201,8806,2355500,9084,8807,2590000,9084,,,,,,,,,,,,,
+24371,"Kalianpur 1880 / India zone I",9084,4243,18111,9801,1,0,4408,8801,32.3,9110,8802,68,9110,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,,
+24372,"Kalianpur 1880 / India zone IIa",9084,4243,18112,9801,1,0,4408,8801,26,9102,8802,74,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,,
+24373,"Kalianpur 1880 / India zone IIIa",9084,4243,18114,9801,1,0,4408,8801,19,9102,8802,80,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,,
+24374,"Kalianpur 1880 / India zone IVa",9084,4243,18116,9801,1,0,4408,8801,12,9102,8802,80,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,,
+24375,"Kalianpur 1937 / India zone IIb",9001,4144,18238,9801,1,0,4400,8801,26,9102,8802,90,9102,8805,0.99878641,9201,8806,2743185.69,9001,8807,914395.23,9001,,,,,,,,,,,,,
+24376,"Kalianpur 1962 / India zone I",9001,4145,18236,9801,1,0,4400,8801,32.3,9110,8802,68,9110,8805,0.99878641,9201,8806,2743196.4,9001,8807,914398.8,9001,,,,,,,,,,,,,
+24377,"Kalianpur 1962 / India zone IIa",9001,4145,18237,9801,1,0,4400,8801,26,9102,8802,74,9102,8805,0.99878641,9201,8806,2743196.4,9001,8807,914398.8,9001,,,,,,,,,,,,,
+24378,"Kalianpur 1975 / India zone I",9001,4146,18231,9801,1,0,4400,8801,32.3,9110,8802,68,9110,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,,
+24379,"Kalianpur 1975 / India zone IIa",9001,4146,18232,9801,1,0,4400,8801,26,9102,8802,74,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,,
+24380,"Kalianpur 1975 / India zone IIb",9001,4146,18235,9801,1,0,4400,8801,26,9102,8802,90,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,,
+24381,"Kalianpur 1975 / India zone IIIa",9001,4146,18233,9801,1,0,4400,8801,19,9102,8802,80,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,,
+24382,"Kalianpur 1880 / India zone IIb",9084,4243,18113,9801,1,0,4408,8801,26,9102,8802,90,9102,8805,0.99878641,9201,8806,3000000,9084,8807,1000000,9084,,,,,,,,,,,,,
+24383,"Kalianpur 1975 / India zone IVa",9001,4146,18234,9801,1,0,4400,8801,12,9102,8802,80,9102,8805,0.99878641,9201,8806,2743195.5,9001,8807,914398.5,9001,,,,,,,,,,,,,
+24500,"Kertau 1968 / Singapore Grid",9001,4245,19920,9806,1,0,4400,8801,1.1715528,9110,8802,103.5110808,9110,8806,30000,9001,8807,30000,9001,,,,,,,,,,,,,,,,
+24547,"Kertau 1968 / UTM zone 47N",9001,4245,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24548,"Kertau 1968 / UTM zone 48N",9001,4245,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24571,"Kertau / R.S.O. Malaya (ch)",9062,4245,19935,9812,1,1,4401,8806,40000,9062,8807,0,9062,8811,4,9110,8812,102.15,9110,8813,323.01328458,9110,8814,323.07483685,9110,8815,0.99984,9201,,,,,,,
+24600,KOC Lambert,9001,4246,19906,9801,1,0,4400,8801,32.3,9110,8802,45,9110,8805,0.9987864078,9201,8806,1500000,9001,8807,1166200,9001,,,,,,,,,,,,,
+24718,"La Canoa / UTM zone 18N",9001,4247,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24719,"La Canoa / UTM zone 19N",9001,4247,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24720,"La Canoa / UTM zone 20N",9001,4247,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24817,"PSAD56 / UTM zone 17N",9001,4248,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24818,"PSAD56 / UTM zone 18N",9001,4248,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24819,"PSAD56 / UTM zone 19N",9001,4248,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24820,"PSAD56 / UTM zone 20N",9001,4248,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24821,"PSAD56 / UTM zone 21N",9001,4248,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+24877,"PSAD56 / UTM zone 17S",9001,4248,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+24878,"PSAD56 / UTM zone 18S",9001,4248,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+24879,"PSAD56 / UTM zone 19S",9001,4248,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+24880,"PSAD56 / UTM zone 20S",9001,4248,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+24881,"PSAD56 / UTM zone 21S",9001,4248,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+24882,"PSAD56 / UTM zone 22S",9001,4248,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+24891,"PSAD56 / Peru west zone",9001,4248,18161,9807,1,0,4499,8801,-6,9110,8802,-80.3,9110,8805,0.99983008,9201,8806,222000,9001,8807,1426834.743,9001,,,,,,,,,,,,,
+24892,"PSAD56 / Peru central zone",9001,4248,18162,9807,1,0,4499,8801,-9.3,9110,8802,-76,9110,8805,0.99932994,9201,8806,720000,9001,8807,1039979.159,9001,,,,,,,,,,,,,
+24893,"PSAD56 / Peru east zone",9001,4248,18163,9807,1,0,4499,8801,-9.3,9110,8802,-70.3,9110,8805,0.99952992,9201,8806,1324000,9001,8807,1040084.558,9001,,,,,,,,,,,,,
+25000,"Leigon / Ghana Metre Grid",9001,4250,19904,9807,1,0,4400,8801,4.4,9110,8802,-1,9110,8805,0.99975,9201,8806,274319.51,9001,8807,0,9001,,,,,,,,,,,,,
+25231,"Lome / UTM zone 31N",9001,4252,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25391,"Luzon 1911 / Philippines zone I",9001,4253,18171,9807,1,0,4499,8801,0,9102,8802,117,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25392,"Luzon 1911 / Philippines zone II",9001,4253,18172,9807,1,0,4499,8801,0,9102,8802,119,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25393,"Luzon 1911 / Philippines zone III",9001,4253,18173,9807,1,0,4499,8801,0,9102,8802,121,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25394,"Luzon 1911 / Philippines zone IV",9001,4253,18174,9807,1,0,4499,8801,0,9102,8802,123,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25395,"Luzon 1911 / Philippines zone V",9001,4253,18175,9807,1,0,4499,8801,0,9102,8802,125,9102,8805,0.99995,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25700,"Makassar (Jakarta) / NEIEZ",9001,4804,19905,9804,1,1,4499,8801,0,9102,8802,110,9102,8805,0.997,9201,8806,3900000,9001,8807,900000,9001,,,,,,,,,,,,,
+25828,"ETRS89 / UTM zone 28N",9001,4258,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25829,"ETRS89 / UTM zone 29N",9001,4258,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25830,"ETRS89 / UTM zone 30N",9001,4258,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25831,"ETRS89 / UTM zone 31N",9001,4258,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25832,"ETRS89 / UTM zone 32N",9001,4258,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25833,"ETRS89 / UTM zone 33N",9001,4258,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25834,"ETRS89 / UTM zone 34N",9001,4258,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25835,"ETRS89 / UTM zone 35N",9001,4258,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25836,"ETRS89 / UTM zone 36N",9001,4258,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25837,"ETRS89 / UTM zone 37N",9001,4258,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25838,"ETRS89 / UTM zone 38N",9001,4258,16038,9807,1,1,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25884,"ETRS89 / TM Baltic93",9001,4258,19939,9807,1,0,4530,8801,0,9102,8802,24,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+25932,"Malongo 1987 / UTM zone 32S",9001,4259,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+26191,"Merchich / Nord Maroc",9001,4261,18131,9801,1,0,4499,8801,37,9105,8802,-6,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+26192,"Merchich / Sud Maroc",9001,4261,18132,9801,1,0,4499,8801,33,9105,8802,-6,9105,8805,0.999615596,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+26193,"Merchich / Sahara",9001,4261,18133,9801,1,1,4499,8801,29,9105,8802,-6,9105,8805,0.9996,9201,8806,1200000,9001,8807,400000,9001,,,,,,,,,,,,,
+26194,"Merchich / Sahara Nord",9001,4261,18134,9801,1,0,4499,8801,29,9105,8802,-6,9105,8805,0.999616304,9201,8806,1200000,9001,8807,400000,9001,,,,,,,,,,,,,
+26195,"Merchich / Sahara Sud",9001,4261,18135,9801,1,0,4499,8801,25,9105,8802,-6,9105,8805,0.999616437,9201,8806,1500000,9001,8807,400000,9001,,,,,,,,,,,,,
+26237,"Massawa / UTM zone 37N",9001,4262,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26331,"Minna / UTM zone 31N",9001,4263,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26332,"Minna / UTM zone 32N",9001,4263,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26391,"Minna / Nigeria West Belt",9001,4263,18151,9807,1,0,4400,8801,4,9110,8802,4.3,9110,8805,0.99975,9201,8806,230738.26,9001,8807,0,9001,,,,,,,,,,,,,
+26392,"Minna / Nigeria Mid Belt",9001,4263,18152,9807,1,0,4400,8801,4,9110,8802,8.3,9110,8805,0.99975,9201,8806,670553.98,9001,8807,0,9001,,,,,,,,,,,,,
+26393,"Minna / Nigeria East Belt",9001,4263,18153,9807,1,0,4400,8801,4,9110,8802,12.3,9110,8805,0.99975,9201,8806,1110369.7,9001,8807,0,9001,,,,,,,,,,,,,
+26432,"Mhast / UTM zone 32S",9001,4264,16132,9807,1,1,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+26591,"Monte Mario (Rome) / Italy zone 1",9001,4806,18121,9807,1,1,4499,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+26592,"Monte Mario (Rome) / Italy zone 2",9001,4806,18122,9807,1,1,4499,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,2520000,9001,8807,0,9001,,,,,,,,,,,,,
+26632,"M'poraloko / UTM zone 32N",9001,4266,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26692,"M'poraloko / UTM zone 32S",9001,4266,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+26701,"NAD27 / UTM zone 1N",9001,4267,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26702,"NAD27 / UTM zone 2N",9001,4267,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26703,"NAD27 / UTM zone 3N",9001,4267,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26704,"NAD27 / UTM zone 4N",9001,4267,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26705,"NAD27 / UTM zone 5N",9001,4267,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26706,"NAD27 / UTM zone 6N",9001,4267,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26707,"NAD27 / UTM zone 7N",9001,4267,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26708,"NAD27 / UTM zone 8N",9001,4267,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26709,"NAD27 / UTM zone 9N",9001,4267,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26710,"NAD27 / UTM zone 10N",9001,4267,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26711,"NAD27 / UTM zone 11N",9001,4267,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26712,"NAD27 / UTM zone 12N",9001,4267,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26713,"NAD27 / UTM zone 13N",9001,4267,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26714,"NAD27 / UTM zone 14N",9001,4267,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26715,"NAD27 / UTM zone 15N",9001,4267,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26716,"NAD27 / UTM zone 16N",9001,4267,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26717,"NAD27 / UTM zone 17N",9001,4267,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26718,"NAD27 / UTM zone 18N",9001,4267,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26719,"NAD27 / UTM zone 19N",9001,4267,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26720,"NAD27 / UTM zone 20N",9001,4267,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26721,"NAD27 / UTM zone 21N",9001,4267,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26722,"NAD27 / UTM zone 22N",9001,4267,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26729,"NAD27 / Alabama East",9003,4267,10101,9807,1,0,4497,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26730,"NAD27 / Alabama West",9003,4267,10102,9807,1,0,4497,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26731,"NAD27 / Alaska zone 1",9003,4267,15001,9812,1,0,4497,8806,16404166.67,9003,8807,-16404166.67,9003,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,,
+26732,"NAD27 / Alaska zone 2",9003,4267,15002,9807,1,0,4497,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26733,"NAD27 / Alaska zone 3",9003,4267,15003,9807,1,0,4497,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26734,"NAD27 / Alaska zone 4",9003,4267,15004,9807,1,0,4497,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26735,"NAD27 / Alaska zone 5",9003,4267,15005,9807,1,0,4497,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26736,"NAD27 / Alaska zone 6",9003,4267,15006,9807,1,0,4497,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26737,"NAD27 / Alaska zone 7",9003,4267,15007,9807,1,0,4497,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,700000,9003,8807,0,9003,,,,,,,,,,,,,
+26738,"NAD27 / Alaska zone 8",9003,4267,15008,9807,1,0,4497,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26739,"NAD27 / Alaska zone 9",9003,4267,15009,9807,1,0,4497,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,600000,9003,8807,0,9003,,,,,,,,,,,,,
+26740,"NAD27 / Alaska zone 10",9003,4267,15010,9802,1,0,4497,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,3000000,9003,8827,0,9003,,,,,,,,,,
+26741,"NAD27 / California zone I",9003,4267,10401,9802,1,0,4497,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26742,"NAD27 / California zone II",9003,4267,10402,9802,1,0,4497,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26743,"NAD27 / California zone III",9003,4267,10403,9802,1,0,4497,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26744,"NAD27 / California zone IV",9003,4267,10404,9802,1,0,4497,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26745,"NAD27 / California zone V",9003,4267,10405,9802,1,0,4497,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26746,"NAD27 / California zone VI",9003,4267,10406,9802,1,0,4497,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26747,"NAD27 / California zone VII",9003,4267,10407,9802,1,1,4497,8821,34.08,9110,8822,-118.2,9110,8823,34.25,9110,8824,33.52,9110,8826,4186692.58,9003,8827,416926.74,9003,,,,,,,,,,
+26748,"NAD27 / Arizona East",9003,4267,10201,9807,1,0,4497,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26749,"NAD27 / Arizona Central",9003,4267,10202,9807,1,0,4497,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26750,"NAD27 / Arizona West",9003,4267,10203,9807,1,0,4497,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26751,"NAD27 / Arkansas North",9003,4267,10301,9802,1,0,4497,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26752,"NAD27 / Arkansas South",9003,4267,10302,9802,1,0,4497,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26753,"NAD27 / Colorado North",9003,4267,10501,9802,1,0,4497,8821,39.2,9110,8822,-105.3,9110,8823,39.43,9110,8824,40.47,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26754,"NAD27 / Colorado Central",9003,4267,10502,9802,1,0,4497,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26755,"NAD27 / Colorado South",9003,4267,10503,9802,1,0,4497,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26756,"NAD27 / Connecticut",9003,4267,10600,9802,1,0,4497,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,600000,9003,8827,0,9003,,,,,,,,,,
+26757,"NAD27 / Delaware",9003,4267,10700,9807,1,0,4497,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26758,"NAD27 / Florida East",9003,4267,10901,9807,1,0,4497,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26759,"NAD27 / Florida West",9003,4267,10902,9807,1,0,4497,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26760,"NAD27 / Florida North",9003,4267,10903,9802,1,0,4497,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26766,"NAD27 / Georgia East",9003,4267,11001,9807,1,0,4497,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26767,"NAD27 / Georgia West",9003,4267,11002,9807,1,0,4497,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26768,"NAD27 / Idaho East",9003,4267,11101,9807,1,0,4497,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26769,"NAD27 / Idaho Central",9003,4267,11102,9807,1,0,4497,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26770,"NAD27 / Idaho West",9003,4267,11103,9807,1,0,4497,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26771,"NAD27 / Illinois East",9003,4267,11201,9807,1,0,4497,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26772,"NAD27 / Illinois West",9003,4267,11202,9807,1,0,4497,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26773,"NAD27 / Indiana East",9003,4267,11301,9807,1,0,4497,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26774,"NAD27 / Indiana West",9003,4267,11302,9807,1,0,4497,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26775,"NAD27 / Iowa North",9003,4267,11401,9802,1,0,4497,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26776,"NAD27 / Iowa South",9003,4267,11402,9802,1,0,4497,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26777,"NAD27 / Kansas North",9003,4267,11501,9802,1,0,4497,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26778,"NAD27 / Kansas South",9003,4267,11502,9802,1,0,4497,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26779,"NAD27 / Kentucky North",9003,4267,11601,9802,1,0,4497,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,38.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26780,"NAD27 / Kentucky South",9003,4267,11602,9802,1,0,4497,8821,36.2,9110,8822,-85.45,9110,8823,36.44,9110,8824,37.56,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26781,"NAD27 / Louisiana North",9003,4267,11701,9802,1,0,4497,8821,30.4,9110,8822,-92.3,9110,8823,31.1,9110,8824,32.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26782,"NAD27 / Louisiana South",9003,4267,11702,9802,1,0,4497,8821,28.4,9110,8822,-91.2,9110,8823,29.18,9110,8824,30.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26783,"NAD27 / Maine East",9003,4267,11801,9807,1,0,4497,8801,43.5,9110,8802,-68.3,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26784,"NAD27 / Maine West",9003,4267,11802,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26785,"NAD27 / Maryland",9003,4267,11900,9802,1,0,4497,8821,37.5,9110,8822,-77,9110,8823,38.18,9110,8824,39.27,9110,8826,800000,9003,8827,0,9003,,,,,,,,,,
+26786,"NAD27 / Massachusetts Mainland",9003,4267,12001,9802,1,0,4497,8821,41,9110,8822,-71.3,9110,8823,41.43,9110,8824,42.41,9110,8826,600000,9003,8827,0,9003,,,,,,,,,,
+26787,"NAD27 / Massachusetts Island",9003,4267,12002,9802,1,0,4497,8821,41,9110,8822,-70.3,9110,8823,41.17,9110,8824,41.29,9110,8826,200000,9003,8827,0,9003,,,,,,,,,,
+26791,"NAD27 / Minnesota North",9003,4267,12201,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,47.02,9110,8824,48.38,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26792,"NAD27 / Minnesota Central",9003,4267,12202,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,45.37,9110,8824,47.03,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26793,"NAD27 / Minnesota South",9003,4267,12203,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,43.47,9110,8824,45.13,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26794,"NAD27 / Mississippi East",9003,4267,12301,9807,1,0,4497,8801,29.4,9110,8802,-88.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26795,"NAD27 / Mississippi West",9003,4267,12302,9807,1,0,4497,8801,30.3,9110,8802,-90.2,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26796,"NAD27 / Missouri East",9003,4267,12401,9807,1,0,4497,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26797,"NAD27 / Missouri Central",9003,4267,12402,9807,1,0,4497,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26798,"NAD27 / Missouri West",9003,4267,12403,9807,1,0,4497,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26799,"NAD27 / California zone VII",9003,4267,10408,9802,1,0,4497,8821,34.08,9110,8822,-118.2,9110,8823,34.25,9110,8824,33.52,9110,8826,4186692.58,9003,8827,4160926.74,9003,,,,,,,,,,
+26801,"NAD Michigan / Michigan East",9003,4268,12101,9807,1,1,4497,8801,41.3,9110,8802,-83.4,9110,8805,0.999942857,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26802,"NAD Michigan / Michigan Old Central",9003,4268,12102,9807,1,1,4497,8801,41.3,9110,8802,-85.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26803,"NAD Michigan / Michigan West",9003,4268,12103,9807,1,1,4497,8801,41.3,9110,8802,-88.45,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+26811,"NAD Michigan / Michigan North",9003,4268,12111,9802,1,1,4497,8821,44.47,9110,8822,-87,9110,8823,45.29,9110,8824,47.05,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26812,"NAD Michigan / Michigan Central",9003,4268,12112,9802,1,1,4497,8821,43.19,9110,8822,-84.2,9110,8823,44.11,9110,8824,45.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26813,"NAD Michigan / Michigan South",9003,4268,12113,9802,1,1,4497,8821,41.3,9110,8822,-84.2,9110,8823,42.06,9110,8824,43.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+26814,"NAD83 / Maine East (ftUS)",9001,4269,11833,9807,1,1,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+26815,"NAD83 / Maine West (ftUS)",9001,4269,11834,9807,1,1,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+26819,"NAD83 / Minnesota North (ftUS)",9001,4269,12234,9802,1,1,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26820,"NAD83 / Minnesota Central (ftUS)",9001,4269,12235,9802,1,1,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26821,"NAD83 / Minnesota South (ftUS)",9001,4269,12236,9802,1,1,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26822,"NAD83 / Nebraska (ftUS)",9001,4269,15396,9802,1,1,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+26823,"NAD83 / West Virginia North (ftUS)",9001,4269,14733,9802,1,1,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,,
+26824,"NAD83 / West Virginia South (ftUS)",9001,4269,14734,9802,1,1,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,,
+26825,"NAD83(HARN) / Maine East (ftUS)",9001,4152,11833,9807,1,1,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+26826,"NAD83(HARN) / Maine West (ftUS)",9001,4152,11834,9807,1,1,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+26830,"NAD83(HARN) / Minnesota North (ftUS)",9001,4152,12234,9802,1,1,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26831,"NAD83(HARN) / Minnesota Central (ftUS)",9001,4152,12235,9802,1,1,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26832,"NAD83(HARN) / Minnesota South (ftUS)",9001,4152,12236,9802,1,1,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26833,"NAD83(HARN) / Nebraska (ftUS)",9001,4152,15396,9802,1,1,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+26834,"NAD83(HARN) / West Virginia North (ftUS)",9001,4152,14733,9802,1,1,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,,
+26835,"NAD83(HARN) / West Virginia South (ftUS)",9001,4152,14734,9802,1,1,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,,
+26836,"NAD83(NSRS2007) / Maine East (ftUS)",9001,4759,11833,9807,1,1,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+26837,"NAD83(NSRS2007) / Maine West (ftUS)",9001,4759,11834,9807,1,1,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+26841,"NAD83(NSRS2007) / Minnesota North (ftUS)",9001,4759,12234,9802,1,1,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26842,"NAD83(NSRS2007) / Minnesota Central (ftUS)",9001,4759,12235,9802,1,1,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26843,"NAD83(NSRS2007) / Minnesota South (ftUS)",9001,4759,12236,9802,1,1,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26844,"NAD83(NSRS2007) / Nebraska (ftUS)",9001,4759,15396,9802,1,1,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+26845,"NAD83(NSRS2007) / West Virginia North (ftUS)",9001,4759,14733,9802,1,1,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,,
+26846,"NAD83(NSRS2007) / West Virginia South (ftUS)",9001,4759,14734,9802,1,1,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9001,8827,0,9001,,,,,,,,,,
+26847,"NAD83 / Maine East (ftUS)",9003,4269,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+26848,"NAD83 / Maine West (ftUS)",9003,4269,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+26849,"NAD83 / Minnesota North (ftUS)",9003,4269,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26850,"NAD83 / Minnesota Central (ftUS)",9003,4269,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26851,"NAD83 / Minnesota South (ftUS)",9003,4269,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26852,"NAD83 / Nebraska (ftUS)",9003,4269,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+26853,"NAD83 / West Virginia North (ftUS)",9003,4269,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+26854,"NAD83 / West Virginia South (ftUS)",9003,4269,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+26855,"NAD83(HARN) / Maine East (ftUS)",9003,4152,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+26856,"NAD83(HARN) / Maine West (ftUS)",9003,4152,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+26857,"NAD83(HARN) / Minnesota North (ftUS)",9003,4152,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26858,"NAD83(HARN) / Minnesota Central (ftUS)",9003,4152,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26859,"NAD83(HARN) / Minnesota South (ftUS)",9003,4152,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26860,"NAD83(HARN) / Nebraska (ftUS)",9003,4152,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+26861,"NAD83(HARN) / West Virginia North (ftUS)",9003,4152,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+26862,"NAD83(HARN) / West Virginia South (ftUS)",9003,4152,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+26863,"NAD83(NSRS2007) / Maine East (ftUS)",9003,4759,11833,9807,1,0,4497,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,984250,9003,8807,0,9003,,,,,,,,,,,,,
+26864,"NAD83(NSRS2007) / Maine West (ftUS)",9003,4759,11834,9807,1,0,4497,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,2952750,9003,8807,0,9003,,,,,,,,,,,,,
+26865,"NAD83(NSRS2007) / Minnesota North (ftUS)",9003,4759,12234,9802,1,0,4497,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26866,"NAD83(NSRS2007) / Minnesota Central (ftUS)",9003,4759,12235,9802,1,0,4497,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26867,"NAD83(NSRS2007) / Minnesota South (ftUS)",9003,4759,12236,9802,1,0,4497,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,2624666.6667,9003,8827,328083.3333,9003,,,,,,,,,,
+26868,"NAD83(NSRS2007) / Nebraska (ftUS)",9003,4759,15396,9802,1,0,4497,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,1640416.6667,9003,8827,0,9003,,,,,,,,,,
+26869,"NAD83(NSRS2007) / West Virginia North (ftUS)",9003,4759,14735,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+26870,"NAD83(NSRS2007) / West Virginia South (ftUS)",9003,4759,14736,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,1968500,9003,8827,0,9003,,,,,,,,,,
+26891,"NAD83(CSRS) / MTM zone 11",9001,4617,17711,9807,1,0,4400,8801,0,9110,8802,-82.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26892,"NAD83(CSRS) / MTM zone 12",9001,4617,17712,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26893,"NAD83(CSRS) / MTM zone 13",9001,4617,17713,9807,1,0,4400,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26894,"NAD83(CSRS) / MTM zone 14",9001,4617,17714,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26895,"NAD83(CSRS) / MTM zone 15",9001,4617,17715,9807,1,0,4400,8801,0,9102,8802,-90,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26896,"NAD83(CSRS) / MTM zone 16",9001,4617,17716,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26897,"NAD83(CSRS) / MTM zone 17",9001,4617,17717,9807,1,0,4400,8801,0,9102,8802,-96,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26898,"NAD83(CSRS) / MTM zone 1",9001,4617,17701,9807,1,0,4496,8801,0,9102,8802,-53,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26899,"NAD83(CSRS) / MTM zone 2",9001,4617,17702,9807,1,0,4496,8801,0,9102,8802,-56,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+26901,"NAD83 / UTM zone 1N",9001,4269,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26902,"NAD83 / UTM zone 2N",9001,4269,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26903,"NAD83 / UTM zone 3N",9001,4269,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26904,"NAD83 / UTM zone 4N",9001,4269,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26905,"NAD83 / UTM zone 5N",9001,4269,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26906,"NAD83 / UTM zone 6N",9001,4269,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26907,"NAD83 / UTM zone 7N",9001,4269,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26908,"NAD83 / UTM zone 8N",9001,4269,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26909,"NAD83 / UTM zone 9N",9001,4269,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26910,"NAD83 / UTM zone 10N",9001,4269,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26911,"NAD83 / UTM zone 11N",9001,4269,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26912,"NAD83 / UTM zone 12N",9001,4269,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26913,"NAD83 / UTM zone 13N",9001,4269,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26914,"NAD83 / UTM zone 14N",9001,4269,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26915,"NAD83 / UTM zone 15N",9001,4269,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26916,"NAD83 / UTM zone 16N",9001,4269,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26917,"NAD83 / UTM zone 17N",9001,4269,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26918,"NAD83 / UTM zone 18N",9001,4269,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26919,"NAD83 / UTM zone 19N",9001,4269,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26920,"NAD83 / UTM zone 20N",9001,4269,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26921,"NAD83 / UTM zone 21N",9001,4269,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26922,"NAD83 / UTM zone 22N",9001,4269,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26923,"NAD83 / UTM zone 23N",9001,4269,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26929,"NAD83 / Alabama East",9001,4269,10131,9807,1,0,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+26930,"NAD83 / Alabama West",9001,4269,10132,9807,1,0,4499,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+26931,"NAD83 / Alaska zone 1",9001,4269,15031,9812,1,0,4499,8806,5000000,9001,8807,-5000000,9001,8811,57,9110,8812,-133.4,9110,8813,323.07483685,9110,8814,323.07483685,9110,8815,0.9999,9201,,,,,,,
+26932,"NAD83 / Alaska zone 2",9001,4269,15032,9807,1,0,4499,8801,54,9102,8802,-142,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26933,"NAD83 / Alaska zone 3",9001,4269,15033,9807,1,0,4499,8801,54,9102,8802,-146,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26934,"NAD83 / Alaska zone 4",9001,4269,15034,9807,1,0,4499,8801,54,9102,8802,-150,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26935,"NAD83 / Alaska zone 5",9001,4269,15035,9807,1,0,4499,8801,54,9102,8802,-154,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26936,"NAD83 / Alaska zone 6",9001,4269,15036,9807,1,0,4499,8801,54,9102,8802,-158,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26937,"NAD83 / Alaska zone 7",9001,4269,15037,9807,1,0,4499,8801,54,9102,8802,-162,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26938,"NAD83 / Alaska zone 8",9001,4269,15038,9807,1,0,4499,8801,54,9102,8802,-166,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26939,"NAD83 / Alaska zone 9",9001,4269,15039,9807,1,0,4499,8801,54,9102,8802,-170,9102,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26940,"NAD83 / Alaska zone 10",9001,4269,15040,9802,1,0,4499,8821,51,9110,8822,-176,9110,8823,53.5,9110,8824,51.5,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+26941,"NAD83 / California zone 1",9001,4269,10431,9802,1,0,4499,8821,39.2,9110,8822,-122,9110,8823,41.4,9110,8824,40,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+26942,"NAD83 / California zone 2",9001,4269,10432,9802,1,0,4499,8821,37.4,9110,8822,-122,9110,8823,39.5,9110,8824,38.2,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+26943,"NAD83 / California zone 3",9001,4269,10433,9802,1,0,4499,8821,36.3,9110,8822,-120.3,9110,8823,38.26,9110,8824,37.04,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+26944,"NAD83 / California zone 4",9001,4269,10434,9802,1,0,4499,8821,35.2,9110,8822,-119,9110,8823,37.15,9110,8824,36,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+26945,"NAD83 / California zone 5",9001,4269,10435,9802,1,0,4499,8821,33.3,9110,8822,-118,9110,8823,35.28,9110,8824,34.02,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+26946,"NAD83 / California zone 6",9001,4269,10436,9802,1,0,4499,8821,32.1,9110,8822,-116.15,9110,8823,33.53,9110,8824,32.47,9110,8826,2000000,9001,8827,500000,9001,,,,,,,,,,
+26948,"NAD83 / Arizona East",9001,4269,10231,9807,1,0,4499,8801,31,9110,8802,-110.1,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+26949,"NAD83 / Arizona Central",9001,4269,10232,9807,1,0,4499,8801,31,9110,8802,-111.55,9110,8805,0.9999,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+26950,"NAD83 / Arizona West",9001,4269,10233,9807,1,0,4499,8801,31,9110,8802,-113.45,9110,8805,0.999933333,9201,8806,213360,9001,8807,0,9001,,,,,,,,,,,,,
+26951,"NAD83 / Arkansas North",9001,4269,10331,9802,1,0,4499,8821,34.2,9110,8822,-92,9110,8823,36.14,9110,8824,34.56,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+26952,"NAD83 / Arkansas South",9001,4269,10332,9802,1,0,4499,8821,32.4,9110,8822,-92,9110,8823,34.46,9110,8824,33.18,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+26953,"NAD83 / Colorado North",9001,4269,10531,9802,1,0,4499,8821,39.2,9110,8822,-105.3,9110,8823,40.47,9110,8824,39.43,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+26954,"NAD83 / Colorado Central",9001,4269,10532,9802,1,0,4499,8821,37.5,9110,8822,-105.3,9110,8823,39.45,9110,8824,38.27,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+26955,"NAD83 / Colorado South",9001,4269,10533,9802,1,0,4499,8821,36.4,9110,8822,-105.3,9110,8823,38.26,9110,8824,37.14,9110,8826,914401.8289,9001,8827,304800.6096,9001,,,,,,,,,,
+26956,"NAD83 / Connecticut",9001,4269,10630,9802,1,0,4499,8821,40.5,9110,8822,-72.45,9110,8823,41.52,9110,8824,41.12,9110,8826,304800.6096,9001,8827,152400.3048,9001,,,,,,,,,,
+26957,"NAD83 / Delaware",9001,4269,10730,9807,1,0,4499,8801,38,9110,8802,-75.25,9110,8805,0.999995,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+26958,"NAD83 / Florida East",9001,4269,10931,9807,1,0,4499,8801,24.2,9110,8802,-81,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+26959,"NAD83 / Florida West",9001,4269,10932,9807,1,0,4499,8801,24.2,9110,8802,-82,9110,8805,0.999941177,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+26960,"NAD83 / Florida North",9001,4269,10933,9802,1,0,4499,8821,29,9110,8822,-84.3,9110,8823,30.45,9110,8824,29.35,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+26961,"NAD83 / Hawaii zone 1",9001,4269,15131,9807,1,0,4499,8801,18.5,9110,8802,-155.3,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26962,"NAD83 / Hawaii zone 2",9001,4269,15132,9807,1,0,4499,8801,20.2,9110,8802,-156.4,9110,8805,0.999966667,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26963,"NAD83 / Hawaii zone 3",9001,4269,15133,9807,1,0,4499,8801,21.1,9110,8802,-158,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26964,"NAD83 / Hawaii zone 4",9001,4269,15134,9807,1,0,4499,8801,21.5,9110,8802,-159.3,9110,8805,0.99999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26965,"NAD83 / Hawaii zone 5",9001,4269,15135,9807,1,0,4499,8801,21.4,9110,8802,-160.1,9110,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26966,"NAD83 / Georgia East",9001,4269,11031,9807,1,0,4499,8801,30,9110,8802,-82.1,9110,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+26967,"NAD83 / Georgia West",9001,4269,11032,9807,1,0,4499,8801,30,9110,8802,-84.1,9110,8805,0.9999,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+26968,"NAD83 / Idaho East",9001,4269,11131,9807,1,0,4499,8801,41.4,9110,8802,-112.1,9110,8805,0.999947368,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+26969,"NAD83 / Idaho Central",9001,4269,11132,9807,1,0,4499,8801,41.4,9110,8802,-114,9110,8805,0.999947368,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26970,"NAD83 / Idaho West",9001,4269,11133,9807,1,0,4499,8801,41.4,9110,8802,-115.45,9110,8805,0.999933333,9201,8806,800000,9001,8807,0,9001,,,,,,,,,,,,,
+26971,"NAD83 / Illinois East",9001,4269,11231,9807,1,0,4499,8801,36.4,9110,8802,-88.2,9110,8805,0.999975,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+26972,"NAD83 / Illinois West",9001,4269,11232,9807,1,0,4499,8801,36.4,9110,8802,-90.1,9110,8805,0.999941177,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+26973,"NAD83 / Indiana East",9001,4269,11331,9807,1,0,4499,8801,37.3,9110,8802,-85.4,9110,8805,0.999966667,9201,8806,100000,9001,8807,250000,9001,,,,,,,,,,,,,
+26974,"NAD83 / Indiana West",9001,4269,11332,9807,1,0,4499,8801,37.3,9110,8802,-87.05,9110,8805,0.999966667,9201,8806,900000,9001,8807,250000,9001,,,,,,,,,,,,,
+26975,"NAD83 / Iowa North",9001,4269,11431,9802,1,0,4499,8821,41.3,9110,8822,-93.3,9110,8823,43.16,9110,8824,42.04,9110,8826,1500000,9001,8827,1000000,9001,,,,,,,,,,
+26976,"NAD83 / Iowa South",9001,4269,11432,9802,1,0,4499,8821,40,9110,8822,-93.3,9110,8823,41.47,9110,8824,40.37,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+26977,"NAD83 / Kansas North",9001,4269,11531,9802,1,0,4499,8821,38.2,9110,8822,-98,9110,8823,39.47,9110,8824,38.43,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+26978,"NAD83 / Kansas South",9001,4269,11532,9802,1,0,4499,8821,36.4,9110,8822,-98.3,9110,8823,38.34,9110,8824,37.16,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+26979,"NAD83 / Kentucky North",9001,4269,11631,9802,1,1,4499,8821,37.3,9110,8822,-84.15,9110,8823,37.58,9110,8824,37.58,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+26980,"NAD83 / Kentucky South",9001,4269,11632,9802,1,0,4499,8821,36.2,9110,8822,-85.45,9110,8823,37.56,9110,8824,36.44,9110,8826,500000,9001,8827,500000,9001,,,,,,,,,,
+26981,"NAD83 / Louisiana North",9001,4269,11731,9802,1,0,4499,8821,30.3,9110,8822,-92.3,9110,8823,32.4,9110,8824,31.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+26982,"NAD83 / Louisiana South",9001,4269,11732,9802,1,0,4499,8821,28.3,9110,8822,-91.2,9110,8823,30.42,9110,8824,29.18,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+26983,"NAD83 / Maine East",9001,4269,11831,9807,1,0,4499,8801,43.4,9110,8802,-68.3,9110,8805,0.9999,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+26984,"NAD83 / Maine West",9001,4269,11832,9807,1,0,4499,8801,42.5,9110,8802,-70.1,9110,8805,0.999966667,9201,8806,900000,9001,8807,0,9001,,,,,,,,,,,,,
+26985,"NAD83 / Maryland",9001,4269,11930,9802,1,0,4499,8821,37.4,9110,8822,-77,9110,8823,39.27,9110,8824,38.18,9110,8826,400000,9001,8827,0,9001,,,,,,,,,,
+26986,"NAD83 / Massachusetts Mainland",9001,4269,12031,9802,1,0,4499,8821,41,9110,8822,-71.3,9110,8823,42.41,9110,8824,41.43,9110,8826,200000,9001,8827,750000,9001,,,,,,,,,,
+26987,"NAD83 / Massachusetts Island",9001,4269,12032,9802,1,0,4499,8821,41,9110,8822,-70.3,9110,8823,41.29,9110,8824,41.17,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+26988,"NAD83 / Michigan North",9001,4269,12141,9802,1,0,4499,8821,44.47,9110,8822,-87,9110,8823,47.05,9110,8824,45.29,9110,8826,8000000,9001,8827,0,9001,,,,,,,,,,
+26989,"NAD83 / Michigan Central",9001,4269,12142,9802,1,0,4499,8821,43.19,9110,8822,-84.22,9110,8823,45.42,9110,8824,44.11,9110,8826,6000000,9001,8827,0,9001,,,,,,,,,,
+26990,"NAD83 / Michigan South",9001,4269,12143,9802,1,0,4499,8821,41.3,9110,8822,-84.22,9110,8823,43.4,9110,8824,42.06,9110,8826,4000000,9001,8827,0,9001,,,,,,,,,,
+26991,"NAD83 / Minnesota North",9001,4269,12231,9802,1,0,4499,8821,46.3,9110,8822,-93.06,9110,8823,48.38,9110,8824,47.02,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+26992,"NAD83 / Minnesota Central",9001,4269,12232,9802,1,0,4499,8821,45,9110,8822,-94.15,9110,8823,47.03,9110,8824,45.37,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+26993,"NAD83 / Minnesota South",9001,4269,12233,9802,1,0,4499,8821,43,9110,8822,-94,9110,8823,45.13,9110,8824,43.47,9110,8826,800000,9001,8827,100000,9001,,,,,,,,,,
+26994,"NAD83 / Mississippi East",9001,4269,12331,9807,1,0,4499,8801,29.3,9110,8802,-88.5,9110,8805,0.99995,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+26995,"NAD83 / Mississippi West",9001,4269,12332,9807,1,0,4499,8801,29.3,9110,8802,-90.2,9110,8805,0.99995,9201,8806,700000,9001,8807,0,9001,,,,,,,,,,,,,
+26996,"NAD83 / Missouri East",9001,4269,12431,9807,1,0,4499,8801,35.5,9110,8802,-90.3,9110,8805,0.999933333,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+26997,"NAD83 / Missouri Central",9001,4269,12432,9807,1,0,4499,8801,35.5,9110,8802,-92.3,9110,8805,0.999933333,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+26998,"NAD83 / Missouri West",9001,4269,12433,9807,1,0,4499,8801,36.1,9110,8802,-94.3,9110,8805,0.999941177,9201,8806,850000,9001,8807,0,9001,,,,,,,,,,,,,
+27037,"Nahrwan 1967 / UTM zone 37N",9001,4270,16037,9807,1,1,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+27038,"Nahrwan 1967 / UTM zone 38N",9001,4270,16038,9807,1,1,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+27039,"Nahrwan 1967 / UTM zone 39N",9001,4270,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+27040,"Nahrwan 1967 / UTM zone 40N",9001,4270,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+27120,"Naparima 1972 / UTM zone 20N",9001,4271,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+27200,"NZGD49 / New Zealand Map Grid",9001,4272,19917,9811,1,0,4400,8801,-41,9102,8802,173,9102,8806,2510000,9001,8807,6023150,9001,,,,,,,,,,,,,,,,
+27205,"NZGD49 / Mount Eden Circuit",9001,4272,17901,9807,1,0,4500,8801,-36.5247515,9110,8802,174.45516217,9110,8805,0.9999,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27206,"NZGD49 / Bay of Plenty Circuit",9001,4272,17902,9807,1,0,4500,8801,-37.45404993,9110,8802,176.27583101,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27207,"NZGD49 / Poverty Bay Circuit",9001,4272,17903,9807,1,0,4500,8801,-38.372893,9110,8802,177.53082906,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27208,"NZGD49 / Hawkes Bay Circuit",9001,4272,17904,9807,1,0,4500,8801,-39.39033455,9110,8802,176.40252499,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27209,"NZGD49 / Taranaki Circuit",9001,4272,17905,9807,1,0,4500,8801,-39.08087299,9110,8802,174.13408423,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27210,"NZGD49 / Tuhirangi Circuit",9001,4272,17906,9807,1,0,4500,8801,-39.30448934,9110,8802,175.38241325,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27211,"NZGD49 / Wanganui Circuit",9001,4272,17907,9807,1,0,4500,8801,-40.14310097,9110,8802,175.29171586,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27212,"NZGD49 / Wairarapa Circuit",9001,4272,17908,9807,1,0,4500,8801,-40.55319175,9110,8802,175.38504588,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27213,"NZGD49 / Wellington Circuit",9001,4272,17909,9807,1,0,4500,8801,-41.18047507,9110,8802,174.46358432,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27214,"NZGD49 / Collingwood Circuit",9001,4272,17910,9807,1,0,4500,8801,-40.42531326,9110,8802,172.40193674,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27215,"NZGD49 / Nelson Circuit",9001,4272,17911,9807,1,0,4500,8801,-41.1628361,9110,8802,173.17575405,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27216,"NZGD49 / Karamea Circuit",9001,4272,17912,9807,1,0,4500,8801,-41.17236815,9110,8802,172.06325015,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27217,"NZGD49 / Buller Circuit",9001,4272,17913,9807,1,0,4500,8801,-41.48388903,9110,8802,171.34525362,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27218,"NZGD49 / Grey Circuit",9001,4272,17914,9807,1,0,4500,8801,-42.20012994,9110,8802,171.32591767,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27219,"NZGD49 / Amuri Circuit",9001,4272,17915,9807,1,0,4500,8801,-42.41208197,9110,8802,173.00364802,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27220,"NZGD49 / Marlborough Circuit",9001,4272,17916,9807,1,0,4500,8801,-41.3240152,9110,8802,173.48074668,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27221,"NZGD49 / Hokitika Circuit",9001,4272,17917,9807,1,0,4500,8801,-42.53107605,9110,8802,170.58479766,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27222,"NZGD49 / Okarito Circuit",9001,4272,17918,9807,1,0,4500,8801,-43.06364613,9110,8802,170.1539333,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27223,"NZGD49 / Jacksons Bay Circuit",9001,4272,17919,9807,1,0,4500,8801,-43.58400904,9110,8802,168.36225612,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27224,"NZGD49 / Mount Pleasant Circuit",9001,4272,17920,9807,1,0,4500,8801,-43.35262953,9110,8802,172.43378969,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27225,"NZGD49 / Gawler Circuit",9001,4272,17921,9807,1,0,4500,8801,-43.44553616,9110,8802,171.21386945,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27226,"NZGD49 / Timaru Circuit",9001,4272,17922,9807,1,0,4500,8801,-44.24079933,9110,8802,171.0326103,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27227,"NZGD49 / Lindis Peak Circuit",9001,4272,17923,9807,1,0,4500,8801,-44.44069647,9110,8802,169.28039183,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27228,"NZGD49 / Mount Nicholas Circuit",9001,4272,17924,9807,1,0,4500,8801,-45.07584493,9110,8802,168.23551083,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27229,"NZGD49 / Mount York Circuit",9001,4272,17925,9807,1,0,4500,8801,-45.33494142,9110,8802,167.44199024,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27230,"NZGD49 / Observation Point Circuit",9001,4272,17926,9807,1,0,4500,8801,-45.48583078,9110,8802,170.37429426,9110,8805,1,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27231,"NZGD49 / North Taieri Circuit",9001,4272,17927,9807,1,0,4500,8801,-45.51414481,9110,8802,170.16573208,9110,8805,0.99996,9201,8806,300000,9001,8807,700000,9001,,,,,,,,,,,,,
+27232,"NZGD49 / Bluff Circuit",9001,4272,17928,9807,1,0,4500,8801,-46.36000346,9110,8802,168.20343392,9110,8805,1,9201,8806,300002.66,9001,8807,699999.58,9001,,,,,,,,,,,,,
+27258,"NZGD49 / UTM zone 58S",9001,4272,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+27259,"NZGD49 / UTM zone 59S",9001,4272,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+27260,"NZGD49 / UTM zone 60S",9001,4272,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+27291,"NZGD49 / North Island Grid",9040,4272,18141,9807,1,0,4409,8801,-39,9110,8802,175.3,9110,8805,1,9201,8806,300000,9040,8807,400000,9040,,,,,,,,,,,,,
+27292,"NZGD49 / South Island Grid",9040,4272,18142,9807,1,0,4409,8801,-44,9110,8802,171.3,9110,8805,1,9201,8806,500000,9040,8807,500000,9040,,,,,,,,,,,,,
+27391,"NGO 1948 (Oslo) / NGO zone I",9001,4817,18221,9807,1,0,4531,8801,58,9110,8802,-4.4,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27392,"NGO 1948 (Oslo) / NGO zone II",9001,4817,18222,9807,1,0,4531,8801,58,9110,8802,-2.2,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27393,"NGO 1948 (Oslo) / NGO zone III",9001,4817,18223,9807,1,0,4531,8801,58,9110,8802,0,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27394,"NGO 1948 (Oslo) / NGO zone IV",9001,4817,18224,9807,1,0,4531,8801,58,9110,8802,2.3,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27395,"NGO 1948 (Oslo) / NGO zone V",9001,4817,18225,9807,1,0,4531,8801,58,9110,8802,6.1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27396,"NGO 1948 (Oslo) / NGO zone VI",9001,4817,18226,9807,1,0,4531,8801,58,9110,8802,10.1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27397,"NGO 1948 (Oslo) / NGO zone VII",9001,4817,18227,9807,1,0,4531,8801,58,9110,8802,14.1,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27398,"NGO 1948 (Oslo) / NGO zone VIII",9001,4817,18228,9807,1,0,4531,8801,58,9110,8802,18.2,9110,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+27429,"Datum 73 / UTM zone 29N",9001,4274,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+27492,"Datum 73 / Modified Portuguese Grid",9001,4274,19974,9807,1,1,4530,8801,39.4,9110,8802,-8.0754862,9110,8805,1,9201,8806,180.598,9001,8807,-86.99,9001,,,,,,,,,,,,,
+27493,"Datum 73 / Modified Portuguese Grid",9001,4274,19974,9807,1,0,4499,8801,39.4,9110,8802,-8.0754862,9110,8805,1,9201,8806,180.598,9001,8807,-86.99,9001,,,,,,,,,,,,,
+27500,"ATF (Paris) / Nord de Guerre",9001,4901,19903,9801,1,0,4499,8801,55,9105,8802,6,9105,8805,0.99950908,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+27561,"NTF (Paris) / Lambert Nord France",9001,4807,18091,9801,1,0,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,,
+27562,"NTF (Paris) / Lambert Centre France",9001,4807,18092,9801,1,0,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,,
+27563,"NTF (Paris) / Lambert Sud France",9001,4807,18093,9801,1,0,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,,
+27564,"NTF (Paris) / Lambert Corse",9001,4807,18094,9801,1,0,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,185861.369,9001,,,,,,,,,,,,,
+27571,"NTF (Paris) / Lambert zone I",9001,4807,18081,9801,1,0,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,1200000,9001,,,,,,,,,,,,,
+27572,"NTF (Paris) / Lambert zone II",9001,4807,18082,9801,1,0,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,2200000,9001,,,,,,,,,,,,,
+27573,"NTF (Paris) / Lambert zone III",9001,4807,18083,9801,1,0,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,3200000,9001,,,,,,,,,,,,,
+27574,"NTF (Paris) / Lambert zone IV",9001,4807,18084,9801,1,0,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,4185861.369,9001,,,,,,,,,,,,,
+27581,"NTF (Paris) / France I",9001,4807,18081,9801,1,1,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,1200000,9001,,,,,,,,,,,,,
+27582,"NTF (Paris) / France II",9001,4807,18082,9801,1,1,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,2200000,9001,,,,,,,,,,,,,
+27583,"NTF (Paris) / France III",9001,4807,18083,9801,1,1,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,3200000,9001,,,,,,,,,,,,,
+27584,"NTF (Paris) / France IV",9001,4807,18084,9801,1,1,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,4185861.369,9001,,,,,,,,,,,,,
+27591,"NTF (Paris) / Nord France",9001,4807,18091,9801,1,1,4499,8801,55,9105,8802,0,9105,8805,0.999877341,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,,
+27592,"NTF (Paris) / Centre France",9001,4807,18092,9801,1,1,4499,8801,52,9105,8802,0,9105,8805,0.99987742,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,,
+27593,"NTF (Paris) / Sud France",9001,4807,18093,9801,1,1,4499,8801,49,9105,8802,0,9105,8805,0.999877499,9201,8806,600000,9001,8807,200000,9001,,,,,,,,,,,,,
+27594,"NTF (Paris) / Corse",9001,4807,18094,9801,1,1,4499,8801,46.85,9105,8802,0,9105,8805,0.99994471,9201,8806,234.358,9001,8807,185861.369,9001,,,,,,,,,,,,,
+27700,"OSGB 1936 / British National Grid",9001,4277,19916,9807,1,0,4400,8801,49,9102,8802,-2,9102,8805,0.9996012717,9201,8806,400000,9001,8807,-100000,9001,,,,,,,,,,,,,
+28191,"Palestine 1923 / Palestine Grid",9001,4281,18201,9806,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8806,170251.555,9001,8807,126867.909,9001,,,,,,,,,,,,,,,,
+28192,"Palestine 1923 / Palestine Belt",9001,4281,18202,9807,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8805,1,9201,8806,170251.555,9001,8807,1126867.909,9001,,,,,,,,,,,,,
+28193,"Palestine 1923 / Israeli CS Grid",9001,4281,18203,9806,1,0,4400,8801,31.4402749,9110,8802,35.124349,9110,8806,170251.555,9001,8807,1126867.909,9001,,,,,,,,,,,,,,,,
+28232,"Pointe Noire / UTM zone 32S",9001,4282,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28348,"GDA94 / MGA zone 48",9001,4283,17348,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28349,"GDA94 / MGA zone 49",9001,4283,17349,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28350,"GDA94 / MGA zone 50",9001,4283,17350,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28351,"GDA94 / MGA zone 51",9001,4283,17351,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28352,"GDA94 / MGA zone 52",9001,4283,17352,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28353,"GDA94 / MGA zone 53",9001,4283,17353,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28354,"GDA94 / MGA zone 54",9001,4283,17354,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28355,"GDA94 / MGA zone 55",9001,4283,17355,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28356,"GDA94 / MGA zone 56",9001,4283,17356,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28357,"GDA94 / MGA zone 57",9001,4283,17357,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28358,"GDA94 / MGA zone 58",9001,4283,17358,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+28402,"Pulkovo 1942 / Gauss-Kruger zone 2",9001,4284,16202,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+28403,"Pulkovo 1942 / Gauss-Kruger zone 3",9001,4284,16203,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+28404,"Pulkovo 1942 / Gauss-Kruger zone 4",9001,4284,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+28405,"Pulkovo 1942 / Gauss-Kruger zone 5",9001,4284,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+28406,"Pulkovo 1942 / Gauss-Kruger zone 6",9001,4284,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+28407,"Pulkovo 1942 / Gauss-Kruger zone 7",9001,4284,16207,9807,1,0,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+28408,"Pulkovo 1942 / Gauss-Kruger zone 8",9001,4284,16208,9807,1,0,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+28409,"Pulkovo 1942 / Gauss-Kruger zone 9",9001,4284,16209,9807,1,0,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,9500000,9001,8807,0,9001,,,,,,,,,,,,,
+28410,"Pulkovo 1942 / Gauss-Kruger zone 10",9001,4284,16210,9807,1,0,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,10500000,9001,8807,0,9001,,,,,,,,,,,,,
+28411,"Pulkovo 1942 / Gauss-Kruger zone 11",9001,4284,16211,9807,1,0,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,11500000,9001,8807,0,9001,,,,,,,,,,,,,
+28412,"Pulkovo 1942 / Gauss-Kruger zone 12",9001,4284,16212,9807,1,0,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,12500000,9001,8807,0,9001,,,,,,,,,,,,,
+28413,"Pulkovo 1942 / Gauss-Kruger zone 13",9001,4284,16213,9807,1,0,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,13500000,9001,8807,0,9001,,,,,,,,,,,,,
+28414,"Pulkovo 1942 / Gauss-Kruger zone 14",9001,4284,16214,9807,1,0,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,14500000,9001,8807,0,9001,,,,,,,,,,,,,
+28415,"Pulkovo 1942 / Gauss-Kruger zone 15",9001,4284,16215,9807,1,0,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,15500000,9001,8807,0,9001,,,,,,,,,,,,,
+28416,"Pulkovo 1942 / Gauss-Kruger zone 16",9001,4284,16216,9807,1,0,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,16500000,9001,8807,0,9001,,,,,,,,,,,,,
+28417,"Pulkovo 1942 / Gauss-Kruger zone 17",9001,4284,16217,9807,1,0,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,17500000,9001,8807,0,9001,,,,,,,,,,,,,
+28418,"Pulkovo 1942 / Gauss-Kruger zone 18",9001,4284,16218,9807,1,0,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,18500000,9001,8807,0,9001,,,,,,,,,,,,,
+28419,"Pulkovo 1942 / Gauss-Kruger zone 19",9001,4284,16219,9807,1,0,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,,,,,,,,
+28420,"Pulkovo 1942 / Gauss-Kruger zone 20",9001,4284,16220,9807,1,0,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,,,,,,,,
+28421,"Pulkovo 1942 / Gauss-Kruger zone 21",9001,4284,16221,9807,1,0,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,,,,,,,,
+28422,"Pulkovo 1942 / Gauss-Kruger zone 22",9001,4284,16222,9807,1,0,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,22500000,9001,8807,0,9001,,,,,,,,,,,,,
+28423,"Pulkovo 1942 / Gauss-Kruger zone 23",9001,4284,16223,9807,1,0,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,23500000,9001,8807,0,9001,,,,,,,,,,,,,
+28424,"Pulkovo 1942 / Gauss-Kruger zone 24",9001,4284,16224,9807,1,0,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,,
+28425,"Pulkovo 1942 / Gauss-Kruger zone 25",9001,4284,16225,9807,1,0,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,,
+28426,"Pulkovo 1942 / Gauss-Kruger zone 26",9001,4284,16226,9807,1,0,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,26500000,9001,8807,0,9001,,,,,,,,,,,,,
+28427,"Pulkovo 1942 / Gauss-Kruger zone 27",9001,4284,16227,9807,1,0,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,27500000,9001,8807,0,9001,,,,,,,,,,,,,
+28428,"Pulkovo 1942 / Gauss-Kruger zone 28",9001,4284,16228,9807,1,0,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,28500000,9001,8807,0,9001,,,,,,,,,,,,,
+28429,"Pulkovo 1942 / Gauss-Kruger zone 29",9001,4284,16229,9807,1,0,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,29500000,9001,8807,0,9001,,,,,,,,,,,,,
+28430,"Pulkovo 1942 / Gauss-Kruger zone 30",9001,4284,16230,9807,1,0,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,30500000,9001,8807,0,9001,,,,,,,,,,,,,
+28431,"Pulkovo 1942 / Gauss-Kruger zone 31",9001,4284,16231,9807,1,0,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,31500000,9001,8807,0,9001,,,,,,,,,,,,,
+28432,"Pulkovo 1942 / Gauss-Kruger zone 32",9001,4284,16232,9807,1,0,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,32500000,9001,8807,0,9001,,,,,,,,,,,,,
+28462,"Pulkovo 1942 / Gauss-Kruger 2N",9001,4284,16302,9807,1,1,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28463,"Pulkovo 1942 / Gauss-Kruger 3N",9001,4284,16303,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28464,"Pulkovo 1942 / Gauss-Kruger 4N",9001,4284,16304,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28465,"Pulkovo 1942 / Gauss-Kruger 5N",9001,4284,16305,9807,1,1,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28466,"Pulkovo 1942 / Gauss-Kruger 6N",9001,4284,16306,9807,1,1,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28467,"Pulkovo 1942 / Gauss-Kruger 7N",9001,4284,16307,9807,1,1,4530,8801,0,9102,8802,39,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28468,"Pulkovo 1942 / Gauss-Kruger 8N",9001,4284,16308,9807,1,1,4530,8801,0,9102,8802,45,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28469,"Pulkovo 1942 / Gauss-Kruger 9N",9001,4284,16309,9807,1,1,4530,8801,0,9102,8802,51,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28470,"Pulkovo 1942 / Gauss-Kruger 10N",9001,4284,16310,9807,1,1,4530,8801,0,9102,8802,57,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28471,"Pulkovo 1942 / Gauss-Kruger 11N",9001,4284,16311,9807,1,1,4530,8801,0,9102,8802,63,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28472,"Pulkovo 1942 / Gauss-Kruger 12N",9001,4284,16312,9807,1,1,4530,8801,0,9102,8802,69,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28473,"Pulkovo 1942 / Gauss-Kruger 13N",9001,4284,16313,9807,1,1,4530,8801,0,9102,8802,75,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28474,"Pulkovo 1942 / Gauss-Kruger 14N",9001,4284,16314,9807,1,1,4530,8801,0,9102,8802,81,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28475,"Pulkovo 1942 / Gauss-Kruger 15N",9001,4284,16315,9807,1,1,4530,8801,0,9102,8802,87,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28476,"Pulkovo 1942 / Gauss-Kruger 16N",9001,4284,16316,9807,1,1,4530,8801,0,9102,8802,93,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28477,"Pulkovo 1942 / Gauss-Kruger 17N",9001,4284,16317,9807,1,1,4530,8801,0,9102,8802,99,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28478,"Pulkovo 1942 / Gauss-Kruger 18N",9001,4284,16318,9807,1,1,4530,8801,0,9102,8802,105,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28479,"Pulkovo 1942 / Gauss-Kruger 19N",9001,4284,16319,9807,1,1,4530,8801,0,9102,8802,111,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28480,"Pulkovo 1942 / Gauss-Kruger 20N",9001,4284,16320,9807,1,1,4530,8801,0,9102,8802,117,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28481,"Pulkovo 1942 / Gauss-Kruger 21N",9001,4284,16321,9807,1,1,4530,8801,0,9102,8802,123,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28482,"Pulkovo 1942 / Gauss-Kruger 22N",9001,4284,16322,9807,1,1,4530,8801,0,9102,8802,129,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28483,"Pulkovo 1942 / Gauss-Kruger 23N",9001,4284,16323,9807,1,1,4530,8801,0,9102,8802,135,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28484,"Pulkovo 1942 / Gauss-Kruger 24N",9001,4284,16324,9807,1,1,4530,8801,0,9102,8802,141,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28485,"Pulkovo 1942 / Gauss-Kruger 25N",9001,4284,16325,9807,1,1,4530,8801,0,9102,8802,147,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28486,"Pulkovo 1942 / Gauss-Kruger 26N",9001,4284,16326,9807,1,1,4530,8801,0,9102,8802,153,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28487,"Pulkovo 1942 / Gauss-Kruger 27N",9001,4284,16327,9807,1,1,4530,8801,0,9102,8802,159,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28488,"Pulkovo 1942 / Gauss-Kruger 28N",9001,4284,16328,9807,1,1,4530,8801,0,9102,8802,165,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28489,"Pulkovo 1942 / Gauss-Kruger 29N",9001,4284,16329,9807,1,1,4530,8801,0,9102,8802,171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28490,"Pulkovo 1942 / Gauss-Kruger 30N",9001,4284,16330,9807,1,1,4530,8801,0,9102,8802,177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28491,"Pulkovo 1942 / Gauss-Kruger 31N",9001,4284,16331,9807,1,1,4530,8801,0,9102,8802,-177,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28492,"Pulkovo 1942 / Gauss-Kruger 32N",9001,4284,16332,9807,1,1,4530,8801,0,9102,8802,-171,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+28600,"Qatar 1974 / Qatar National Grid",9001,4285,19919,9807,1,0,4400,8801,24.27,9110,8802,51.13,9110,8805,0.99999,9201,8806,200000,9001,8807,300000,9001,,,,,,,,,,,,,
+28991,"Amersfoort / RD Old",9001,4289,19913,9809,1,0,4499,8801,52.0922178,9110,8802,5.23155,9110,8805,0.9999079,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+28992,"Amersfoort / RD New",9001,4289,19914,9809,1,0,4499,8801,52.0922178,9110,8802,5.23155,9110,8805,0.9999079,9201,8806,155000,9001,8807,463000,9001,,,,,,,,,,,,,
+29100,"SAD69 / Brazil Polyconic",9001,4291,19941,9818,1,1,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,,
+29101,"SAD69 / Brazil Polyconic",9001,4618,19941,9818,1,0,4499,8801,0,9102,8802,-54,9102,8806,5000000,9001,8807,10000000,9001,,,,,,,,,,,,,,,,
+29118,"SAD69 / UTM zone 18N",9001,4291,16018,9807,1,1,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29119,"SAD69 / UTM zone 19N",9001,4291,16019,9807,1,1,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29120,"SAD69 / UTM zone 20N",9001,4291,16020,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29121,"SAD69 / UTM zone 21N",9001,4291,16021,9807,1,1,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29122,"SAD69 / UTM zone 22N",9001,4291,16022,9807,1,1,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29168,"SAD69 / UTM zone 18N",9001,4618,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29169,"SAD69 / UTM zone 19N",9001,4618,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29170,"SAD69 / UTM zone 20N",9001,4618,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29171,"SAD69 / UTM zone 21N",9001,4618,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29172,"SAD69 / UTM zone 22N",9001,4618,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29177,"SAD69 / UTM zone 17S",9001,4291,16117,9807,1,1,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29178,"SAD69 / UTM zone 18S",9001,4291,16118,9807,1,1,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29179,"SAD69 / UTM zone 19S",9001,4291,16119,9807,1,1,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29180,"SAD69 / UTM zone 20S",9001,4291,16120,9807,1,1,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29181,"SAD69 / UTM zone 21S",9001,4291,16121,9807,1,1,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29182,"SAD69 / UTM zone 22S",9001,4291,16122,9807,1,1,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29183,"SAD69 / UTM zone 23S",9001,4291,16123,9807,1,1,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29184,"SAD69 / UTM zone 24S",9001,4291,16124,9807,1,1,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29185,"SAD69 / UTM zone 25S",9001,4291,16125,9807,1,1,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29187,"SAD69 / UTM zone 17S",9001,4618,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29188,"SAD69 / UTM zone 18S",9001,4618,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29189,"SAD69 / UTM zone 19S",9001,4618,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29190,"SAD69 / UTM zone 20S",9001,4618,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29191,"SAD69 / UTM zone 21S",9001,4618,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29192,"SAD69 / UTM zone 22S",9001,4618,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29193,"SAD69 / UTM zone 23S",9001,4618,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29194,"SAD69 / UTM zone 24S",9001,4618,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29195,"SAD69 / UTM zone 25S",9001,4618,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29220,"Sapper Hill 1943 / UTM zone 20S",9001,4292,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29221,"Sapper Hill 1943 / UTM zone 21S",9001,4292,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29333,"Schwarzeck / UTM zone 33S",9001,4293,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29371,"Schwarzeck / Lo22/11",9031,4293,17611,9808,1,0,6502,8801,-22,9102,8802,11,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29373,"Schwarzeck / Lo22/13",9031,4293,17613,9808,1,0,6502,8801,-22,9102,8802,13,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29375,"Schwarzeck / Lo22/15",9031,4293,17615,9808,1,0,6502,8801,-22,9102,8802,15,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29377,"Schwarzeck / Lo22/17",9031,4293,17617,9808,1,0,6502,8801,-22,9102,8802,17,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29379,"Schwarzeck / Lo22/19",9031,4293,17619,9808,1,0,6502,8801,-22,9102,8802,19,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29381,"Schwarzeck / Lo22/21",9031,4293,17621,9808,1,0,6502,8801,-22,9102,8802,21,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29383,"Schwarzeck / Lo22/23",9031,4293,17623,9808,1,0,6502,8801,-22,9102,8802,23,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29385,"Schwarzeck / Lo22/25",9031,4293,17625,9808,1,0,6502,8801,-22,9102,8802,25,9102,8805,1,9201,8806,0,9031,8807,0,9031,,,,,,,,,,,,,
+29635,"Sudan / UTM zone 35N",9001,4296,16035,9807,1,1,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29636,"Sudan / UTM zone 36N",9001,4296,16036,9807,1,1,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29700,"Tananarive (Paris) / Laborde Grid",9001,4810,19911,9815,1,1,4499,8811,-21,9105,8812,49,9105,8813,21,9105,8814,21,9105,8815,0.9995,9201,8816,400000,9001,8817,800000,9001,,,,,,,
+29701,"Tananarive (Paris) / Laborde Grid",9001,4810,19861,9813,1,0,4530,8806,400000,9001,8807,800000,9001,8811,-21,9105,8812,49,9105,8813,21,9105,8815,0.9995,9201,,,,,,,,,,
+29702,"Tananarive (Paris) / Laborde Grid approximation",9001,4810,19911,9815,1,0,4530,8811,-21,9105,8812,49,9105,8813,21,9105,8814,21,9105,8815,0.9995,9201,8816,400000,9001,8817,800000,9001,,,,,,,
+29738,"Tananarive / UTM zone 38S",9001,4297,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29739,"Tananarive / UTM zone 39S",9001,4297,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+29849,"Timbalai 1948 / UTM zone 49N",9001,4298,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29850,"Timbalai 1948 / UTM zone 50N",9001,4298,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+29871,"Timbalai 1948 / RSO Borneo (ch)",9042,4298,19956,9815,1,0,4402,8811,4,9110,8812,115,9110,8813,53.18569537,9110,8814,53.07483685,9110,8815,0.99984,9201,8816,29352.4763,9042,8817,22014.3572,9042,,,,,,,
+29872,"Timbalai 1948 / RSO Borneo (ftSe)",9041,4298,19957,9815,1,0,4405,8811,4,9110,8812,115,9110,8813,53.18569537,9110,8814,53.07483685,9110,8815,0.99984,9201,8816,1937263.44,9041,8817,1452947.58,9041,,,,,,,
+29873,"Timbalai 1948 / RSO Borneo (m)",9001,4298,19958,9815,1,0,4400,8811,4,9110,8812,115,9110,8813,53.18569537,9110,8814,53.07483685,9110,8815,0.99984,9201,8816,590476.87,9001,8817,442857.65,9001,,,,,,,
+29900,"TM65 / Irish National Grid",9001,4299,19908,9807,1,1,4400,8801,53.3,9110,8802,-8,9110,8805,1.000035,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,,
+29901,"OSNI 1952 / Irish National Grid",9001,4188,19973,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,1,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,,
+29902,"TM65 / Irish Grid",9001,4299,19972,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,1.000035,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,,
+29903,"TM75 / Irish Grid",9001,4300,19972,9807,1,0,4400,8801,53.3,9110,8802,-8,9110,8805,1.000035,9201,8806,200000,9001,8807,250000,9001,,,,,,,,,,,,,
+30161,"Tokyo / Japan Plane Rectangular CS I",9001,4301,17801,9807,1,0,4530,8801,33,9110,8802,129.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30162,"Tokyo / Japan Plane Rectangular CS II",9001,4301,17802,9807,1,0,4530,8801,33,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30163,"Tokyo / Japan Plane Rectangular CS III",9001,4301,17803,9807,1,0,4530,8801,36,9110,8802,132.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30164,"Tokyo / Japan Plane Rectangular CS IV",9001,4301,17804,9807,1,0,4530,8801,33,9110,8802,133.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30165,"Tokyo / Japan Plane Rectangular CS V",9001,4301,17805,9807,1,0,4530,8801,36,9110,8802,134.2,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30166,"Tokyo / Japan Plane Rectangular CS VI",9001,4301,17806,9807,1,0,4530,8801,36,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30167,"Tokyo / Japan Plane Rectangular CS VII",9001,4301,17807,9807,1,0,4530,8801,36,9110,8802,137.1,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30168,"Tokyo / Japan Plane Rectangular CS VIII",9001,4301,17808,9807,1,0,4530,8801,36,9110,8802,138.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30169,"Tokyo / Japan Plane Rectangular CS IX",9001,4301,17809,9807,1,0,4530,8801,36,9110,8802,139.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30170,"Tokyo / Japan Plane Rectangular CS X",9001,4301,17810,9807,1,0,4530,8801,40,9110,8802,140.5,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30171,"Tokyo / Japan Plane Rectangular CS XI",9001,4301,17811,9807,1,0,4530,8801,44,9110,8802,140.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30172,"Tokyo / Japan Plane Rectangular CS XII",9001,4301,17812,9807,1,0,4530,8801,44,9110,8802,142.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30173,"Tokyo / Japan Plane Rectangular CS XIII",9001,4301,17813,9807,1,0,4530,8801,44,9110,8802,144.15,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30174,"Tokyo / Japan Plane Rectangular CS XIV",9001,4301,17814,9807,1,0,4530,8801,26,9110,8802,142,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30175,"Tokyo / Japan Plane Rectangular CS XV",9001,4301,17815,9807,1,0,4530,8801,26,9110,8802,127.3,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30176,"Tokyo / Japan Plane Rectangular CS XVI",9001,4301,17816,9807,1,0,4530,8801,26,9110,8802,124,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30177,"Tokyo / Japan Plane Rectangular CS XVII",9001,4301,17817,9807,1,0,4530,8801,26,9110,8802,131,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30178,"Tokyo / Japan Plane Rectangular CS XVIII",9001,4301,17818,9807,1,0,4530,8801,20,9110,8802,136,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30179,"Tokyo / Japan Plane Rectangular CS XIX",9001,4301,17819,9807,1,0,4530,8801,26,9110,8802,154,9110,8805,0.9999,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+30200,"Trinidad 1903 / Trinidad Grid",9039,4302,19925,9806,1,0,4407,8801,10.263,9110,8802,-61.2,9110,8806,430000,9039,8807,325000,9039,,,,,,,,,,,,,,,,
+30339,"TC(1948) / UTM zone 39N",9001,4303,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+30340,"TC(1948) / UTM zone 40N",9001,4303,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+30491,"Voirol 1875 / Nord Algerie (ancienne)",9001,4304,18011,9801,1,0,4499,8801,40,9105,8802,3,9105,8805,0.999625544,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+30492,"Voirol 1875 / Sud Algerie (ancienne)",9001,4304,18012,9801,1,0,4499,8801,37,9105,8802,3,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+30493,"Voirol 1879 / Nord Algerie (ancienne)",9001,4671,18011,9801,1,0,4499,8801,40,9105,8802,3,9105,8805,0.999625544,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+30494,"Voirol 1879 / Sud Algerie (ancienne)",9001,4671,18012,9801,1,0,4499,8801,37,9105,8802,3,9105,8805,0.999625769,9201,8806,500000,9001,8807,300000,9001,,,,,,,,,,,,,
+30729,"Nord Sahara 1959 / UTM zone 29N",9001,4307,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+30730,"Nord Sahara 1959 / UTM zone 30N",9001,4307,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+30731,"Nord Sahara 1959 / UTM zone 31N",9001,4307,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+30732,"Nord Sahara 1959 / UTM zone 32N",9001,4307,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+30791,"Nord Sahara 1959 / Nord Algerie",9001,4307,18021,9801,1,0,4499,8801,40,9105,8802,3,9105,8805,0.999625544,9201,8806,500135,9001,8807,300090,9001,,,,,,,,,,,,,
+30792,"Nord Sahara 1959 / Sud Algerie",9001,4307,18022,9801,1,0,4499,8801,37,9105,8802,3,9105,8805,0.999625769,9201,8806,500135,9001,8807,300090,9001,,,,,,,,,,,,,
+30800,RT38 2.5 gon W,9001,4308,19929,9807,1,1,4530,8801,0,9110,8802,15.48298,9110,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+31028,"Yoff / UTM zone 28N",9001,4310,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31121,"Zanderij / UTM zone 21N",9001,4311,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31154,"Zanderij / TM 54 NW",9001,4311,17054,9807,1,0,4400,8801,0,9102,8802,-54,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31170,"Zanderij / Suriname Old TM",9001,4311,19954,9807,1,0,4400,8801,0,9110,8802,-55.41,9110,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31171,"Zanderij / Suriname TM",9001,4311,19955,9807,1,0,4400,8801,0,9110,8802,-55.41,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31251,"MGI (Ferro) / Austria GK West Zone",9001,4805,18001,9807,1,0,4530,8801,0,9102,8802,28,9102,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,577.326,90.129,463.919,5.137,1.474,5.297,2.4232
+31252,"MGI (Ferro) / Austria GK Central Zone",9001,4805,18002,9807,1,0,4530,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,577.326,90.129,463.919,5.137,1.474,5.297,2.4232
+31253,"MGI (Ferro) / Austria GK East Zone",9001,4805,18003,9807,1,0,4530,8801,0,9102,8802,34,9102,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,577.326,90.129,463.919,5.137,1.474,5.297,2.4232
+31254,"MGI / Austria GK West",9001,4312,18004,9807,1,0,4530,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,,,,,,,
+31255,"MGI / Austria GK Central",9001,4312,18005,9807,1,0,4530,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,,,,,,,
+31256,"MGI / Austria GK East",9001,4312,18006,9807,1,0,4530,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,0,9001,8807,-5000000,9001,,,,,,,,,,,,,
+31257,"MGI / Austria GK M28",9001,4312,18007,9807,1,0,4530,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,150000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+31258,"MGI / Austria GK M31",9001,4312,18008,9807,1,0,4530,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,450000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+31259,"MGI / Austria GK M34",9001,4312,18009,9807,1,0,4530,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,750000,9001,8807,-5000000,9001,,,,,,,,,,,,,
+31265,"MGI / 3-degree Gauss zone 5",9001,4312,16265,9807,1,1,4499,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+31266,"MGI / 3-degree Gauss zone 6",9001,4312,16266,9807,1,1,4499,8801,0,9102,8802,18,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+31267,"MGI / 3-degree Gauss zone 7",9001,4312,16267,9807,1,1,4499,8801,0,9102,8802,21,9102,8805,1,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+31268,"MGI / 3-degree Gauss zone 8",9001,4312,16268,9807,1,1,4499,8801,0,9102,8802,24,9102,8805,1,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+31275,"MGI / Balkans zone 5",9001,4312,18275,9807,1,1,4530,8801,0,9102,8802,15,9102,8805,0.9999,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+31276,"MGI / Balkans zone 6",9001,4312,18276,9807,1,1,4530,8801,0,9102,8802,18,9102,8805,0.9999,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,,
+31277,"MGI / Balkans zone 7",9001,4312,18277,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+31278,"MGI / Balkans zone 8",9001,4312,18277,9807,1,1,4530,8801,0,9102,8802,21,9102,8805,0.9999,9201,8806,7500000,9001,8807,0,9001,,,,,,,,,,,,,
+31279,"MGI / Balkans zone 8",9001,4312,18278,9807,1,1,4530,8801,0,9102,8802,24,9102,8805,0.9999,9201,8806,8500000,9001,8807,0,9001,,,,,,,,,,,,,
+31281,"MGI (Ferro) / Austria West Zone",9001,4805,18041,9807,1,0,4530,8801,0,9102,8802,28,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+31282,"MGI (Ferro) / Austria Central Zone",9001,4805,18042,9807,1,0,4530,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+31283,"MGI (Ferro) / Austria East Zone",9001,4805,18043,9807,1,0,4530,8801,0,9102,8802,34,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+31284,"MGI / Austria M28",9001,4312,18044,9807,1,0,4530,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+31285,"MGI / Austria M31",9001,4312,18045,9807,1,0,4530,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,450000,9001,8807,0,9001,,,,,,,,,,,,,
+31286,"MGI / Austria M34",9001,4312,18046,9807,1,0,4530,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,750000,9001,8807,0,9001,,,,,,,,,,,,,
+31287,"MGI / Austria Lambert",9001,4312,19947,9802,1,0,4530,8821,47.3,9110,8822,13.2,9110,8823,49,9110,8824,46,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+31288,"MGI (Ferro) / M28",9001,4805,18047,9807,1,0,4530,8801,0,9102,8802,28,9102,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+31289,"MGI (Ferro) / M31",9001,4805,18048,9807,1,0,4530,8801,0,9102,8802,31,9102,8805,1,9201,8806,450000,9001,8807,0,9001,,,,,,,,,,,,,
+31290,"MGI (Ferro) / M34",9001,4805,18049,9807,1,0,4530,8801,0,9102,8802,34,9102,8805,1,9201,8806,750000,9001,8807,0,9001,,,,,,,,,,,,,
+31291,"MGI (Ferro) / Austria West Zone",9001,4805,18041,9807,1,1,4499,8801,0,9102,8802,28,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+31292,"MGI (Ferro) / Austria Central Zone",9001,4805,18042,9807,1,1,4499,8801,0,9102,8802,31,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+31293,"MGI (Ferro) / Austria East Zone",9001,4805,18043,9807,1,1,4499,8801,0,9102,8802,34,9102,8805,1,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,,
+31294,"MGI / M28",9001,4312,18044,9807,1,1,4499,8801,0,9110,8802,10.2,9110,8805,1,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+31295,"MGI / M31",9001,4312,18045,9807,1,1,4499,8801,0,9110,8802,13.2,9110,8805,1,9201,8806,450000,9001,8807,0,9001,,,,,,,,,,,,,
+31296,"MGI / M34",9001,4312,18046,9807,1,1,4499,8801,0,9110,8802,16.2,9110,8805,1,9201,8806,750000,9001,8807,0,9001,,,,,,,,,,,,,
+31297,"MGI / Austria Lambert",9001,4312,19947,9802,1,1,4499,8821,47.3,9110,8822,13.2,9110,8823,49,9110,8824,46,9110,8826,400000,9001,8827,400000,9001,,,,,,,,,,
+31300,"Belge 1972 / Belge Lambert 72",9001,4313,19902,9803,1,0,4499,8821,90,9110,8822,4.2124983,9110,8823,49.5,9110,8824,51.1,9110,8826,150000.01256,9001,8827,5400088.4378,9001,,,,,,,,,,
+31370,"Belge 1972 / Belgian Lambert 72",9001,4313,19961,9802,1,0,4499,8821,90,9110,8822,4.2202952,9110,8823,51.100000204,9110,8824,49.500000204,9110,8826,150000.013,9001,8827,5400088.438,9001,,,,,,,,,,
+31461,"DHDN / 3-degree Gauss zone 1",9001,4314,16261,9807,1,1,4499,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,,,,,,,,
+31462,"DHDN / 3-degree Gauss zone 2",9001,4314,16262,9807,1,1,4499,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+31463,"DHDN / 3-degree Gauss zone 3",9001,4314,16263,9807,1,1,4499,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+31464,"DHDN / 3-degree Gauss zone 4",9001,4314,16264,9807,1,1,4499,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+31465,"DHDN / 3-degree Gauss zone 5",9001,4314,16265,9807,1,1,4499,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+31466,"DHDN / 3-degree Gauss-Kruger zone 2",9001,4314,16262,9807,1,0,4530,8801,0,9102,8802,6,9102,8805,1,9201,8806,2500000,9001,8807,0,9001,,,,,,,,,,,,,
+31467,"DHDN / 3-degree Gauss-Kruger zone 3",9001,4314,16263,9807,1,0,4530,8801,0,9102,8802,9,9102,8805,1,9201,8806,3500000,9001,8807,0,9001,,,,,,,,,,,,,
+31468,"DHDN / 3-degree Gauss-Kruger zone 4",9001,4314,16264,9807,1,0,4530,8801,0,9102,8802,12,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,,
+31469,"DHDN / 3-degree Gauss-Kruger zone 5",9001,4314,16265,9807,1,0,4530,8801,0,9102,8802,15,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,,
+31528,"Conakry 1905 / UTM zone 28N",9001,4315,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31529,"Conakry 1905 / UTM zone 29N",9001,4315,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31600,"Dealul Piscului 1930 / Stereo 33",9001,4316,19927,9809,1,0,4499,8801,45.54,9110,8802,25.23328772,9110,8805,0.9996667,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+31700,"Dealul Piscului 1970/ Stereo 70",9001,4317,19926,9809,1,1,4530,8801,46,9102,8802,25,9102,8805,0.99975,9201,8806,500000,9001,8807,500000,9001,,,,,,,,,,,,,
+31838,"NGN / UTM zone 38N",9001,4318,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31839,"NGN / UTM zone 39N",9001,4318,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31900,"KUDAMS / KTM",9001,4319,19928,9807,1,1,4400,8801,0,9102,8802,48,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31901,"KUDAMS / KTM",9001,4319,19997,9807,1,0,4400,8801,0,9102,8802,48,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31965,"SIRGAS 2000 / UTM zone 11N",9001,4674,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31966,"SIRGAS 2000 / UTM zone 12N",9001,4674,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31967,"SIRGAS 2000 / UTM zone 13N",9001,4674,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31968,"SIRGAS 2000 / UTM zone 14N",9001,4674,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31969,"SIRGAS 2000 / UTM zone 15N",9001,4674,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31970,"SIRGAS 2000 / UTM zone 16N",9001,4674,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31971,"SIRGAS 2000 / UTM zone 17N",9001,4674,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31972,"SIRGAS 2000 / UTM zone 18N",9001,4674,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31973,"SIRGAS 2000 / UTM zone 19N",9001,4674,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31974,"SIRGAS 2000 / UTM zone 20N",9001,4674,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31975,"SIRGAS 2000 / UTM zone 21N",9001,4674,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31976,"SIRGAS 2000 / UTM zone 22N",9001,4674,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31977,"SIRGAS 2000 / UTM zone 17S",9001,4674,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31978,"SIRGAS 2000 / UTM zone 18S",9001,4674,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31979,"SIRGAS 2000 / UTM zone 19S",9001,4674,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31980,"SIRGAS 2000 / UTM zone 20S",9001,4674,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31981,"SIRGAS 2000 / UTM zone 21S",9001,4674,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31982,"SIRGAS 2000 / UTM zone 22S",9001,4674,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31983,"SIRGAS 2000 / UTM zone 23S",9001,4674,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31984,"SIRGAS 2000 / UTM zone 24S",9001,4674,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31985,"SIRGAS 2000 / UTM zone 25S",9001,4674,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31986,"SIRGAS 1995 / UTM zone 17N",9001,4170,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31987,"SIRGAS 1995 / UTM zone 18N",9001,4170,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31988,"SIRGAS 1995 / UTM zone 19N",9001,4170,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31989,"SIRGAS 1995 / UTM zone 20N",9001,4170,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31990,"SIRGAS 1995 / UTM zone 21N",9001,4170,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31991,"SIRGAS 1995 / UTM zone 22N",9001,4170,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+31992,"SIRGAS 1995 / UTM zone 17S",9001,4170,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31993,"SIRGAS 1995 / UTM zone 18S",9001,4170,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31994,"SIRGAS 1995 / UTM zone 19S",9001,4170,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31995,"SIRGAS 1995 / UTM zone 20S",9001,4170,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31996,"SIRGAS 1995 / UTM zone 21S",9001,4170,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31997,"SIRGAS 1995 / UTM zone 22S",9001,4170,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31998,"SIRGAS 1995 / UTM zone 23S",9001,4170,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+31999,"SIRGAS 1995 / UTM zone 24S",9001,4170,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32000,"SIRGAS 1995 / UTM zone 25S",9001,4170,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32001,"NAD27 / Montana North",9003,4267,12501,9802,1,0,4497,8821,47,9110,8822,-109.3,9110,8823,48.43,9110,8824,47.51,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32002,"NAD27 / Montana Central",9003,4267,12502,9802,1,0,4497,8821,45.5,9110,8822,-109.3,9110,8823,47.53,9110,8824,46.27,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32003,"NAD27 / Montana South",9003,4267,12503,9802,1,0,4497,8821,44,9110,8822,-109.3,9110,8823,46.24,9110,8824,44.52,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32005,"NAD27 / Nebraska North",9003,4267,12601,9802,1,0,4497,8821,41.2,9110,8822,-100,9110,8823,41.51,9110,8824,42.49,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32006,"NAD27 / Nebraska South",9003,4267,12602,9802,1,0,4497,8821,39.4,9110,8822,-99.3,9110,8823,40.17,9110,8824,41.43,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32007,"NAD27 / Nevada East",9003,4267,12701,9807,1,0,4497,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32008,"NAD27 / Nevada Central",9003,4267,12702,9807,1,0,4497,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32009,"NAD27 / Nevada West",9003,4267,12703,9807,1,0,4497,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32010,"NAD27 / New Hampshire",9003,4267,12800,9807,1,0,4497,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32011,"NAD27 / New Jersey",9003,4267,12900,9807,1,0,4497,8801,38.5,9110,8802,-74.4,9110,8805,0.999975,9201,8806,2000000,9003,8807,0,9003,,,,,,,,,,,,,
+32012,"NAD27 / New Mexico East",9003,4267,13001,9807,1,0,4497,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32013,"NAD27 / New Mexico Central",9003,4267,13002,9807,1,0,4497,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32014,"NAD27 / New Mexico West",9003,4267,13003,9807,1,0,4497,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32015,"NAD27 / New York East",9003,4267,13101,9807,1,0,4497,8801,40,9110,8802,-74.2,9110,8805,0.999966667,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32016,"NAD27 / New York Central",9003,4267,13102,9807,1,0,4497,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32017,"NAD27 / New York West",9003,4267,13103,9807,1,0,4497,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32018,"NAD27 / New York Long Island",9003,4267,13104,9802,1,1,4497,8821,40.3,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,1000000,9003,8827,0,9003,,,,,,,,,,
+32019,"NAD27 / North Carolina",9003,4267,13200,9802,1,0,4497,8821,33.45,9110,8822,-79,9110,8823,34.2,9110,8824,36.1,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32020,"NAD27 / North Dakota North",9003,4267,13301,9802,1,0,4497,8821,47,9110,8822,-100.3,9110,8823,47.26,9110,8824,48.44,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32021,"NAD27 / North Dakota South",9003,4267,13302,9802,1,0,4497,8821,45.4,9110,8822,-100.3,9110,8823,46.11,9110,8824,47.29,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32022,"NAD27 / Ohio North",9003,4267,13401,9802,1,0,4497,8821,39.4,9110,8822,-82.3,9110,8823,40.26,9110,8824,41.42,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32023,"NAD27 / Ohio South",9003,4267,13402,9802,1,0,4497,8821,38,9110,8822,-82.3,9110,8823,38.44,9110,8824,40.02,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32024,"NAD27 / Oklahoma North",9003,4267,13501,9802,1,0,4497,8821,35,9110,8822,-98,9110,8823,35.34,9110,8824,36.46,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32025,"NAD27 / Oklahoma South",9003,4267,13502,9802,1,0,4497,8821,33.2,9110,8822,-98,9110,8823,33.56,9110,8824,35.14,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32026,"NAD27 / Oregon North",9003,4267,13601,9802,1,0,4497,8821,43.4,9110,8822,-120.3,9110,8823,44.2,9110,8824,46,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32027,"NAD27 / Oregon South",9003,4267,13602,9802,1,0,4497,8821,41.4,9110,8822,-120.3,9110,8823,42.2,9110,8824,44,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32028,"NAD27 / Pennsylvania North",9003,4267,13701,9802,1,0,4497,8821,40.1,9110,8822,-77.45,9110,8823,40.53,9110,8824,41.57,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32029,"NAD27 / Pennsylvania South",9003,4267,13702,9802,1,1,4497,8821,39.2,9110,8822,-77.45,9110,8823,39.56,9110,8824,40.48,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32030,"NAD27 / Rhode Island",9003,4267,13800,9807,1,0,4497,8801,41.05,9110,8802,-71.3,9110,8805,0.9999938,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32031,"NAD27 / South Carolina North",9003,4267,13901,9802,1,0,4497,8821,33,9110,8822,-81,9110,8823,33.46,9110,8824,34.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32033,"NAD27 / South Carolina South",9003,4267,13902,9802,1,0,4497,8821,31.5,9110,8822,-81,9110,8823,32.2,9110,8824,33.4,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32034,"NAD27 / South Dakota North",9003,4267,14001,9802,1,0,4497,8821,43.5,9110,8822,-100,9110,8823,44.25,9110,8824,45.41,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32035,"NAD27 / South Dakota South",9003,4267,14002,9802,1,0,4497,8821,42.2,9110,8822,-100.2,9110,8823,42.5,9110,8824,44.24,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32036,"NAD27 / Tennessee",9003,4267,14100,9802,1,1,4497,8821,34.4,9110,8822,-86,9110,8823,35.15,9110,8824,36.25,9110,8826,100000,9003,8827,0,9003,,,,,,,,,,
+32037,"NAD27 / Texas North",9003,4267,14201,9802,1,0,4497,8821,34,9110,8822,-101.3,9110,8823,34.39,9110,8824,36.11,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32038,"NAD27 / Texas North Central",9003,4267,14202,9802,1,0,4497,8821,31.4,9110,8822,-97.3,9110,8823,32.08,9110,8824,33.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32039,"NAD27 / Texas Central",9003,4267,14203,9802,1,0,4497,8821,29.4,9110,8822,-100.2,9110,8823,30.07,9110,8824,31.53,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32040,"NAD27 / Texas South Central",9003,4267,14204,9802,1,0,4497,8821,27.5,9110,8822,-99,9110,8823,28.23,9110,8824,30.17,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32041,"NAD27 / Texas South",9003,4267,14205,9802,1,0,4497,8821,25.4,9110,8822,-98.3,9110,8823,26.1,9110,8824,27.5,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32042,"NAD27 / Utah North",9003,4267,14301,9802,1,0,4497,8821,40.2,9110,8822,-111.3,9110,8823,40.43,9110,8824,41.47,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32043,"NAD27 / Utah Central",9003,4267,14302,9802,1,0,4497,8821,38.2,9110,8822,-111.3,9110,8823,39.01,9110,8824,40.39,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32044,"NAD27 / Utah South",9003,4267,14303,9802,1,0,4497,8821,36.4,9110,8822,-111.3,9110,8823,37.13,9110,8824,38.21,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32045,"NAD27 / Vermont",9003,4267,14400,9807,1,0,4497,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32046,"NAD27 / Virginia North",9003,4267,14501,9802,1,0,4497,8821,37.4,9110,8822,-78.3,9110,8823,38.02,9110,8824,39.12,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32047,"NAD27 / Virginia South",9003,4267,14502,9802,1,0,4497,8821,36.2,9110,8822,-78.3,9110,8823,36.46,9110,8824,37.58,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32048,"NAD27 / Washington North",9003,4267,14601,9802,1,0,4497,8821,47,9110,8822,-120.5,9110,8823,47.3,9110,8824,48.44,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32049,"NAD27 / Washington South",9003,4267,14602,9802,1,0,4497,8821,45.2,9110,8822,-120.3,9110,8823,45.5,9110,8824,47.2,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32050,"NAD27 / West Virginia North",9003,4267,14701,9802,1,0,4497,8821,38.3,9110,8822,-79.3,9110,8823,39,9110,8824,40.15,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32051,"NAD27 / West Virginia South",9003,4267,14702,9802,1,0,4497,8821,37,9110,8822,-81,9110,8823,37.29,9110,8824,38.53,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32052,"NAD27 / Wisconsin North",9003,4267,14801,9802,1,0,4497,8821,45.1,9110,8822,-90,9110,8823,45.34,9110,8824,46.46,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32053,"NAD27 / Wisconsin Central",9003,4267,14802,9802,1,0,4497,8821,43.5,9110,8822,-90,9110,8823,44.15,9110,8824,45.3,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32054,"NAD27 / Wisconsin South",9003,4267,14803,9802,1,0,4497,8821,42,9110,8822,-90,9110,8823,42.44,9110,8824,44.04,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32055,"NAD27 / Wyoming East",9003,4267,14901,9807,1,0,4497,8801,40.4,9110,8802,-105.1,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32056,"NAD27 / Wyoming East Central",9003,4267,14902,9807,1,0,4497,8801,40.4,9110,8802,-107.2,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32057,"NAD27 / Wyoming West Central",9003,4267,14903,9807,1,0,4497,8801,40.4,9110,8802,-108.45,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32058,"NAD27 / Wyoming West",9003,4267,14904,9807,1,0,4497,8801,40.4,9110,8802,-110.05,9110,8805,0.999941177,9201,8806,500000,9003,8807,0,9003,,,,,,,,,,,,,
+32061,"NAD27 / Guatemala Norte",9001,4267,18211,9801,1,1,4499,8801,16.49,9110,8802,-90.2,9110,8805,0.99992226,9201,8806,500000,9001,8807,292209.579,9001,,,,,,,,,,,,,
+32062,"NAD27 / Guatemala Sur",9001,4267,18212,9801,1,1,4499,8801,14.54,9110,8802,-90.2,9110,8805,0.99989906,9201,8806,500000,9001,8807,325992.681,9001,,,,,,,,,,,,,
+32064,"NAD27 / BLM 14N (ftUS)",9003,4267,15914,9807,1,0,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32065,"NAD27 / BLM 15N (ftUS)",9003,4267,15915,9807,1,0,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32066,"NAD27 / BLM 16N (ftUS)",9003,4267,15916,9807,1,0,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32067,"NAD27 / BLM 17N (ftUS)",9003,4267,15917,9807,1,0,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32074,"NAD27 / BLM 14N (feet)",9003,4267,15914,9807,1,1,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32075,"NAD27 / BLM 15N (feet)",9003,4267,15915,9807,1,1,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32076,"NAD27 / BLM 16N (feet)",9003,4267,15916,9807,1,1,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32077,"NAD27 / BLM 17N (feet)",9003,4267,15917,9807,1,1,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32081,"NAD27 / MTM zone 1",9001,4267,17701,9807,1,0,4400,8801,0,9102,8802,-53,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32082,"NAD27 / MTM zone 2",9001,4267,17702,9807,1,0,4400,8801,0,9102,8802,-56,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32083,"NAD27 / MTM zone 3",9001,4267,17703,9807,1,0,4400,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32084,"NAD27 / MTM zone 4",9001,4267,17704,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32085,"NAD27 / MTM zone 5",9001,4267,17705,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32086,"NAD27 / MTM zone 6",9001,4267,17706,9807,1,0,4400,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32098,"NAD27 / Quebec Lambert",9001,4267,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+32099,"NAD27 / Louisiana Offshore",9003,4267,11703,9802,1,0,4497,8821,25.4,9110,8822,-91.2,9110,8823,27.5,9110,8824,26.1,9110,8826,2000000,9003,8827,0,9003,,,,,,,,,,
+32100,"NAD83 / Montana",9001,4269,12530,9802,1,0,4499,8821,44.15,9110,8822,-109.3,9110,8823,49,9110,8824,45,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32104,"NAD83 / Nebraska",9001,4269,12630,9802,1,0,4499,8821,39.5,9110,8822,-100,9110,8823,43,9110,8824,40,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+32107,"NAD83 / Nevada East",9001,4269,12731,9807,1,0,4499,8801,34.45,9110,8802,-115.35,9110,8805,0.9999,9201,8806,200000,9001,8807,8000000,9001,,,,,,,,,,,,,
+32108,"NAD83 / Nevada Central",9001,4269,12732,9807,1,0,4499,8801,34.45,9110,8802,-116.4,9110,8805,0.9999,9201,8806,500000,9001,8807,6000000,9001,,,,,,,,,,,,,
+32109,"NAD83 / Nevada West",9001,4269,12733,9807,1,0,4499,8801,34.45,9110,8802,-118.35,9110,8805,0.9999,9201,8806,800000,9001,8807,4000000,9001,,,,,,,,,,,,,
+32110,"NAD83 / New Hampshire",9001,4269,12830,9807,1,0,4499,8801,42.3,9110,8802,-71.4,9110,8805,0.999966667,9201,8806,300000,9001,8807,0,9001,,,,,,,,,,,,,
+32111,"NAD83 / New Jersey",9001,4269,12930,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+32112,"NAD83 / New Mexico East",9001,4269,13031,9807,1,0,4499,8801,31,9110,8802,-104.2,9110,8805,0.999909091,9201,8806,165000,9001,8807,0,9001,,,,,,,,,,,,,
+32113,"NAD83 / New Mexico Central",9001,4269,13032,9807,1,0,4499,8801,31,9110,8802,-106.15,9110,8805,0.9999,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32114,"NAD83 / New Mexico West",9001,4269,13033,9807,1,0,4499,8801,31,9110,8802,-107.5,9110,8805,0.999916667,9201,8806,830000,9001,8807,0,9001,,,,,,,,,,,,,
+32115,"NAD83 / New York East",9001,4269,13131,9807,1,0,4499,8801,38.5,9110,8802,-74.3,9110,8805,0.9999,9201,8806,150000,9001,8807,0,9001,,,,,,,,,,,,,
+32116,"NAD83 / New York Central",9001,4269,13132,9807,1,0,4499,8801,40,9110,8802,-76.35,9110,8805,0.9999375,9201,8806,250000,9001,8807,0,9001,,,,,,,,,,,,,
+32117,"NAD83 / New York West",9001,4269,13133,9807,1,0,4499,8801,40,9110,8802,-78.35,9110,8805,0.9999375,9201,8806,350000,9001,8807,0,9001,,,,,,,,,,,,,
+32118,"NAD83 / New York Long Island",9001,4269,13134,9802,1,0,4499,8821,40.1,9110,8822,-74,9110,8823,41.02,9110,8824,40.4,9110,8826,300000,9001,8827,0,9001,,,,,,,,,,
+32119,"NAD83 / North Carolina",9001,4269,13230,9802,1,0,4499,8821,33.45,9110,8822,-79,9110,8823,36.1,9110,8824,34.2,9110,8826,609601.22,9001,8827,0,9001,,,,,,,,,,
+32120,"NAD83 / North Dakota North",9001,4269,13331,9802,1,0,4499,8821,47,9110,8822,-100.3,9110,8823,48.44,9110,8824,47.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32121,"NAD83 / North Dakota South",9001,4269,13332,9802,1,0,4499,8821,45.4,9110,8822,-100.3,9110,8823,47.29,9110,8824,46.11,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32122,"NAD83 / Ohio North",9001,4269,13431,9802,1,0,4499,8821,39.4,9110,8822,-82.3,9110,8823,41.42,9110,8824,40.26,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32123,"NAD83 / Ohio South",9001,4269,13432,9802,1,0,4499,8821,38,9110,8822,-82.3,9110,8823,40.02,9110,8824,38.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32124,"NAD83 / Oklahoma North",9001,4269,13531,9802,1,0,4499,8821,35,9110,8822,-98,9110,8823,36.46,9110,8824,35.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32125,"NAD83 / Oklahoma South",9001,4269,13532,9802,1,0,4499,8821,33.2,9110,8822,-98,9110,8823,35.14,9110,8824,33.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32126,"NAD83 / Oregon North",9001,4269,13631,9802,1,0,4499,8821,43.4,9110,8822,-120.3,9110,8823,46,9110,8824,44.2,9110,8826,2500000,9001,8827,0,9001,,,,,,,,,,
+32127,"NAD83 / Oregon South",9001,4269,13632,9802,1,0,4499,8821,41.4,9110,8822,-120.3,9110,8823,44,9110,8824,42.2,9110,8826,1500000,9001,8827,0,9001,,,,,,,,,,
+32128,"NAD83 / Pennsylvania North",9001,4269,13731,9802,1,0,4499,8821,40.1,9110,8822,-77.45,9110,8823,41.57,9110,8824,40.53,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32129,"NAD83 / Pennsylvania South",9001,4269,13732,9802,1,0,4499,8821,39.2,9110,8822,-77.45,9110,8823,40.58,9110,8824,39.56,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32130,"NAD83 / Rhode Island",9001,4269,13830,9807,1,0,4499,8801,41.05,9110,8802,-71.3,9110,8805,0.99999375,9201,8806,100000,9001,8807,0,9001,,,,,,,,,,,,,
+32133,"NAD83 / South Carolina",9001,4269,13930,9802,1,0,4499,8821,31.5,9110,8822,-81,9110,8823,34.5,9110,8824,32.3,9110,8826,609600,9001,8827,0,9001,,,,,,,,,,
+32134,"NAD83 / South Dakota North",9001,4269,14031,9802,1,0,4499,8821,43.5,9110,8822,-100,9110,8823,45.41,9110,8824,44.25,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32135,"NAD83 / South Dakota South",9001,4269,14032,9802,1,0,4499,8821,42.2,9110,8822,-100.2,9110,8823,44.24,9110,8824,42.5,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32136,"NAD83 / Tennessee",9001,4269,14130,9802,1,0,4499,8821,34.2,9110,8822,-86,9110,8823,36.25,9110,8824,35.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32137,"NAD83 / Texas North",9001,4269,14231,9802,1,0,4499,8821,34,9110,8822,-101.3,9110,8823,36.11,9110,8824,34.39,9110,8826,200000,9001,8827,1000000,9001,,,,,,,,,,
+32138,"NAD83 / Texas North Central",9001,4269,14232,9802,1,0,4499,8821,31.4,9110,8822,-98.3,9110,8823,33.58,9110,8824,32.08,9110,8826,600000,9001,8827,2000000,9001,,,,,,,,,,
+32139,"NAD83 / Texas Central",9001,4269,14233,9802,1,0,4499,8821,29.4,9110,8822,-100.2,9110,8823,31.53,9110,8824,30.07,9110,8826,700000,9001,8827,3000000,9001,,,,,,,,,,
+32140,"NAD83 / Texas South Central",9001,4269,14234,9802,1,0,4499,8821,27.5,9110,8822,-99,9110,8823,30.17,9110,8824,28.23,9110,8826,600000,9001,8827,4000000,9001,,,,,,,,,,
+32141,"NAD83 / Texas South",9001,4269,14235,9802,1,0,4499,8821,25.4,9110,8822,-98.3,9110,8823,27.5,9110,8824,26.1,9110,8826,300000,9001,8827,5000000,9001,,,,,,,,,,
+32142,"NAD83 / Utah North",9001,4269,14331,9802,1,0,4499,8821,40.2,9110,8822,-111.3,9110,8823,41.47,9110,8824,40.43,9110,8826,500000,9001,8827,1000000,9001,,,,,,,,,,
+32143,"NAD83 / Utah Central",9001,4269,14332,9802,1,0,4499,8821,38.2,9110,8822,-111.3,9110,8823,40.39,9110,8824,39.01,9110,8826,500000,9001,8827,2000000,9001,,,,,,,,,,
+32144,"NAD83 / Utah South",9001,4269,14333,9802,1,0,4499,8821,36.4,9110,8822,-111.3,9110,8823,38.21,9110,8824,37.13,9110,8826,500000,9001,8827,3000000,9001,,,,,,,,,,
+32145,"NAD83 / Vermont",9001,4269,14430,9807,1,0,4499,8801,42.3,9110,8802,-72.3,9110,8805,0.999964286,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32146,"NAD83 / Virginia North",9001,4269,14531,9802,1,0,4499,8821,37.4,9110,8822,-78.3,9110,8823,39.12,9110,8824,38.02,9110,8826,3500000,9001,8827,2000000,9001,,,,,,,,,,
+32147,"NAD83 / Virginia South",9001,4269,14532,9802,1,0,4499,8821,36.2,9110,8822,-78.3,9110,8823,37.58,9110,8824,36.46,9110,8826,3500000,9001,8827,1000000,9001,,,,,,,,,,
+32148,"NAD83 / Washington North",9001,4269,14631,9802,1,0,4499,8821,47,9110,8822,-120.5,9110,8823,48.44,9110,8824,47.3,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+32149,"NAD83 / Washington South",9001,4269,14632,9802,1,0,4499,8821,45.2,9110,8822,-120.3,9110,8823,47.2,9110,8824,45.5,9110,8826,500000,9001,8827,0,9001,,,,,,,,,,
+32150,"NAD83 / West Virginia North",9001,4269,14731,9802,1,0,4499,8821,38.3,9110,8822,-79.3,9110,8823,40.15,9110,8824,39,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32151,"NAD83 / West Virginia South",9001,4269,14732,9802,1,0,4499,8821,37,9110,8822,-81,9110,8823,38.53,9110,8824,37.29,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32152,"NAD83 / Wisconsin North",9001,4269,14831,9802,1,0,4499,8821,45.1,9110,8822,-90,9110,8823,46.46,9110,8824,45.34,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32153,"NAD83 / Wisconsin Central",9001,4269,14832,9802,1,0,4499,8821,43.5,9110,8822,-90,9110,8823,45.3,9110,8824,44.15,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32154,"NAD83 / Wisconsin South",9001,4269,14833,9802,1,0,4499,8821,42,9110,8822,-90,9110,8823,44.04,9110,8824,42.44,9110,8826,600000,9001,8827,0,9001,,,,,,,,,,
+32155,"NAD83 / Wyoming East",9001,4269,14931,9807,1,0,4499,8801,40.3,9110,8802,-105.1,9110,8805,0.9999375,9201,8806,200000,9001,8807,0,9001,,,,,,,,,,,,,
+32156,"NAD83 / Wyoming East Central",9001,4269,14932,9807,1,0,4499,8801,40.3,9110,8802,-107.2,9110,8805,0.9999375,9201,8806,400000,9001,8807,100000,9001,,,,,,,,,,,,,
+32157,"NAD83 / Wyoming West Central",9001,4269,14933,9807,1,0,4499,8801,40.3,9110,8802,-108.45,9110,8805,0.9999375,9201,8806,600000,9001,8807,0,9001,,,,,,,,,,,,,
+32158,"NAD83 / Wyoming West",9001,4269,14934,9807,1,0,4499,8801,40.3,9110,8802,-110.05,9110,8805,0.9999375,9201,8806,800000,9001,8807,100000,9001,,,,,,,,,,,,,
+32161,"NAD83 / Puerto Rico & Virgin Is.",9001,4269,15230,9802,1,0,4499,8821,17.5,9110,8822,-66.26,9110,8823,18.26,9110,8824,18.02,9110,8826,200000,9001,8827,200000,9001,,,,,,,,,,
+32164,"NAD83 / BLM 14N (ftUS)",9003,4269,15914,9807,1,0,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32165,"NAD83 / BLM 15N (ftUS)",9003,4269,15915,9807,1,0,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32166,"NAD83 / BLM 16N (ftUS)",9003,4269,15916,9807,1,0,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32167,"NAD83 / BLM 17N (ftUS)",9003,4269,15917,9807,1,0,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32180,"NAD83 / SCoPQ zone 2",9001,4269,17700,9807,1,1,4499,8801,0,9110,8802,-55.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32181,"NAD83 / MTM zone 1",9001,4269,17701,9807,1,0,4496,8801,0,9102,8802,-53,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32182,"NAD83 / MTM zone 2",9001,4269,17702,9807,1,0,4496,8801,0,9102,8802,-56,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32183,"NAD83 / MTM zone 3",9001,4269,17703,9807,1,0,4496,8801,0,9110,8802,-58.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32184,"NAD83 / MTM zone 4",9001,4269,17704,9807,1,0,4496,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32185,"NAD83 / MTM zone 5",9001,4269,17705,9807,1,0,4496,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32186,"NAD83 / MTM zone 6",9001,4269,17706,9807,1,0,4496,8801,0,9110,8802,-67.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32187,"NAD83 / MTM zone 7",9001,4269,17707,9807,1,0,4496,8801,0,9110,8802,-70.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32188,"NAD83 / MTM zone 8",9001,4269,17708,9807,1,0,4496,8801,0,9110,8802,-73.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32189,"NAD83 / MTM zone 9",9001,4269,17709,9807,1,0,4496,8801,0,9110,8802,-76.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32190,"NAD83 / MTM zone 10",9001,4269,17710,9807,1,0,4496,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32191,"NAD83 / MTM zone 11",9001,4269,17711,9807,1,0,4400,8801,0,9110,8802,-82.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32192,"NAD83 / MTM zone 12",9001,4269,17712,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32193,"NAD83 / MTM zone 13",9001,4269,17713,9807,1,0,4400,8801,0,9102,8802,-84,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32194,"NAD83 / MTM zone 14",9001,4269,17714,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32195,"NAD83 / MTM zone 15",9001,4269,17715,9807,1,0,4400,8801,0,9102,8802,-90,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32196,"NAD83 / MTM zone 16",9001,4269,17716,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32197,"NAD83 / MTM zone 17",9001,4269,17717,9807,1,0,4400,8801,0,9102,8802,-96,9102,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,,
+32198,"NAD83 / Quebec Lambert",9001,4269,19944,9802,1,0,4499,8821,44,9110,8822,-68.3,9110,8823,60,9110,8824,46,9110,8826,0,9001,8827,0,9001,,,,,,,,,,
+32199,"NAD83 / Louisiana Offshore",9001,4269,11733,9802,1,0,4499,8821,25.3,9110,8822,-91.2,9110,8823,27.5,9110,8824,26.1,9110,8826,1000000,9001,8827,0,9001,,,,,,,,,,
+32201,"WGS 72 / UTM zone 1N",9001,4322,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32202,"WGS 72 / UTM zone 2N",9001,4322,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32203,"WGS 72 / UTM zone 3N",9001,4322,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32204,"WGS 72 / UTM zone 4N",9001,4322,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32205,"WGS 72 / UTM zone 5N",9001,4322,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32206,"WGS 72 / UTM zone 6N",9001,4322,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32207,"WGS 72 / UTM zone 7N",9001,4322,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32208,"WGS 72 / UTM zone 8N",9001,4322,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32209,"WGS 72 / UTM zone 9N",9001,4322,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32210,"WGS 72 / UTM zone 10N",9001,4322,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32211,"WGS 72 / UTM zone 11N",9001,4322,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32212,"WGS 72 / UTM zone 12N",9001,4322,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32213,"WGS 72 / UTM zone 13N",9001,4322,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32214,"WGS 72 / UTM zone 14N",9001,4322,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32215,"WGS 72 / UTM zone 15N",9001,4322,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32216,"WGS 72 / UTM zone 16N",9001,4322,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32217,"WGS 72 / UTM zone 17N",9001,4322,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32218,"WGS 72 / UTM zone 18N",9001,4322,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32219,"WGS 72 / UTM zone 19N",9001,4322,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32220,"WGS 72 / UTM zone 20N",9001,4322,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32221,"WGS 72 / UTM zone 21N",9001,4322,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32222,"WGS 72 / UTM zone 22N",9001,4322,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32223,"WGS 72 / UTM zone 23N",9001,4322,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32224,"WGS 72 / UTM zone 24N",9001,4322,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32225,"WGS 72 / UTM zone 25N",9001,4322,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32226,"WGS 72 / UTM zone 26N",9001,4322,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32227,"WGS 72 / UTM zone 27N",9001,4322,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32228,"WGS 72 / UTM zone 28N",9001,4322,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32229,"WGS 72 / UTM zone 29N",9001,4322,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32230,"WGS 72 / UTM zone 30N",9001,4322,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32231,"WGS 72 / UTM zone 31N",9001,4322,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32232,"WGS 72 / UTM zone 32N",9001,4322,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32233,"WGS 72 / UTM zone 33N",9001,4322,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32234,"WGS 72 / UTM zone 34N",9001,4322,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32235,"WGS 72 / UTM zone 35N",9001,4322,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32236,"WGS 72 / UTM zone 36N",9001,4322,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32237,"WGS 72 / UTM zone 37N",9001,4322,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32238,"WGS 72 / UTM zone 38N",9001,4322,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32239,"WGS 72 / UTM zone 39N",9001,4322,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32240,"WGS 72 / UTM zone 40N",9001,4322,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32241,"WGS 72 / UTM zone 41N",9001,4322,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32242,"WGS 72 / UTM zone 42N",9001,4322,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32243,"WGS 72 / UTM zone 43N",9001,4322,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32244,"WGS 72 / UTM zone 44N",9001,4322,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32245,"WGS 72 / UTM zone 45N",9001,4322,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32246,"WGS 72 / UTM zone 46N",9001,4322,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32247,"WGS 72 / UTM zone 47N",9001,4322,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32248,"WGS 72 / UTM zone 48N",9001,4322,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32249,"WGS 72 / UTM zone 49N",9001,4322,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32250,"WGS 72 / UTM zone 50N",9001,4322,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32251,"WGS 72 / UTM zone 51N",9001,4322,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32252,"WGS 72 / UTM zone 52N",9001,4322,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32253,"WGS 72 / UTM zone 53N",9001,4322,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32254,"WGS 72 / UTM zone 54N",9001,4322,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32255,"WGS 72 / UTM zone 55N",9001,4322,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32256,"WGS 72 / UTM zone 56N",9001,4322,16056,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32257,"WGS 72 / UTM zone 57N",9001,4322,16057,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32258,"WGS 72 / UTM zone 58N",9001,4322,16058,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32259,"WGS 72 / UTM zone 59N",9001,4322,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32260,"WGS 72 / UTM zone 60N",9001,4322,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32301,"WGS 72 / UTM zone 1S",9001,4322,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32302,"WGS 72 / UTM zone 2S",9001,4322,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32303,"WGS 72 / UTM zone 3S",9001,4322,16103,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32304,"WGS 72 / UTM zone 4S",9001,4322,16104,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32305,"WGS 72 / UTM zone 5S",9001,4322,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32306,"WGS 72 / UTM zone 6S",9001,4322,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32307,"WGS 72 / UTM zone 7S",9001,4322,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32308,"WGS 72 / UTM zone 8S",9001,4322,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32309,"WGS 72 / UTM zone 9S",9001,4322,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32310,"WGS 72 / UTM zone 10S",9001,4322,16110,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32311,"WGS 72 / UTM zone 11S",9001,4322,16111,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32312,"WGS 72 / UTM zone 12S",9001,4322,16112,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32313,"WGS 72 / UTM zone 13S",9001,4322,16113,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32314,"WGS 72 / UTM zone 14S",9001,4322,16114,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32315,"WGS 72 / UTM zone 15S",9001,4322,16115,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32316,"WGS 72 / UTM zone 16S",9001,4322,16116,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32317,"WGS 72 / UTM zone 17S",9001,4322,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32318,"WGS 72 / UTM zone 18S",9001,4322,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32319,"WGS 72 / UTM zone 19S",9001,4322,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32320,"WGS 72 / UTM zone 20S",9001,4322,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32321,"WGS 72 / UTM zone 21S",9001,4322,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32322,"WGS 72 / UTM zone 22S",9001,4322,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32323,"WGS 72 / UTM zone 23S",9001,4322,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32324,"WGS 72 / UTM zone 24S",9001,4322,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32325,"WGS 72 / UTM zone 25S",9001,4322,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32326,"WGS 72 / UTM zone 26S",9001,4322,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32327,"WGS 72 / UTM zone 27S",9001,4322,16127,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32328,"WGS 72 / UTM zone 28S",9001,4322,16128,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32329,"WGS 72 / UTM zone 29S",9001,4322,16129,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32330,"WGS 72 / UTM zone 30S",9001,4322,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32331,"WGS 72 / UTM zone 31S",9001,4322,16131,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32332,"WGS 72 / UTM zone 32S",9001,4322,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32333,"WGS 72 / UTM zone 33S",9001,4322,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32334,"WGS 72 / UTM zone 34S",9001,4322,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32335,"WGS 72 / UTM zone 35S",9001,4322,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32336,"WGS 72 / UTM zone 36S",9001,4322,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32337,"WGS 72 / UTM zone 37S",9001,4322,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32338,"WGS 72 / UTM zone 38S",9001,4322,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32339,"WGS 72 / UTM zone 39S",9001,4322,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32340,"WGS 72 / UTM zone 40S",9001,4322,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32341,"WGS 72 / UTM zone 41S",9001,4322,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32342,"WGS 72 / UTM zone 42S",9001,4322,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32343,"WGS 72 / UTM zone 43S",9001,4322,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32344,"WGS 72 / UTM zone 44S",9001,4322,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32345,"WGS 72 / UTM zone 45S",9001,4322,16145,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32346,"WGS 72 / UTM zone 46S",9001,4322,16146,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32347,"WGS 72 / UTM zone 47S",9001,4322,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32348,"WGS 72 / UTM zone 48S",9001,4322,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32349,"WGS 72 / UTM zone 49S",9001,4322,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32350,"WGS 72 / UTM zone 50S",9001,4322,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32351,"WGS 72 / UTM zone 51S",9001,4322,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32352,"WGS 72 / UTM zone 52S",9001,4322,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32353,"WGS 72 / UTM zone 53S",9001,4322,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32354,"WGS 72 / UTM zone 54S",9001,4322,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32355,"WGS 72 / UTM zone 55S",9001,4322,16155,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32356,"WGS 72 / UTM zone 56S",9001,4322,16156,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32357,"WGS 72 / UTM zone 57S",9001,4322,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32358,"WGS 72 / UTM zone 58S",9001,4322,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32359,"WGS 72 / UTM zone 59S",9001,4322,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32360,"WGS 72 / UTM zone 60S",9001,4322,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32401,"WGS 72BE / UTM zone 1N",9001,4324,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32402,"WGS 72BE / UTM zone 2N",9001,4324,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32403,"WGS 72BE / UTM zone 3N",9001,4324,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32404,"WGS 72BE / UTM zone 4N",9001,4324,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32405,"WGS 72BE / UTM zone 5N",9001,4324,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32406,"WGS 72BE / UTM zone 6N",9001,4324,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32407,"WGS 72BE / UTM zone 7N",9001,4324,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32408,"WGS 72BE / UTM zone 8N",9001,4324,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32409,"WGS 72BE / UTM zone 9N",9001,4324,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32410,"WGS 72BE / UTM zone 10N",9001,4324,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32411,"WGS 72BE / UTM zone 11N",9001,4324,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32412,"WGS 72BE / UTM zone 12N",9001,4324,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32413,"WGS 72BE / UTM zone 13N",9001,4324,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32414,"WGS 72BE / UTM zone 14N",9001,4324,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32415,"WGS 72BE / UTM zone 15N",9001,4324,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32416,"WGS 72BE / UTM zone 16N",9001,4324,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32417,"WGS 72BE / UTM zone 17N",9001,4324,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32418,"WGS 72BE / UTM zone 18N",9001,4324,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32419,"WGS 72BE / UTM zone 19N",9001,4324,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32420,"WGS 72BE / UTM zone 20N",9001,4324,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32421,"WGS 72BE / UTM zone 21N",9001,4324,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32422,"WGS 72BE / UTM zone 22N",9001,4324,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32423,"WGS 72BE / UTM zone 23N",9001,4324,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32424,"WGS 72BE / UTM zone 24N",9001,4324,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32425,"WGS 72BE / UTM zone 25N",9001,4324,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32426,"WGS 72BE / UTM zone 26N",9001,4324,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32427,"WGS 72BE / UTM zone 27N",9001,4324,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32428,"WGS 72BE / UTM zone 28N",9001,4324,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32429,"WGS 72BE / UTM zone 29N",9001,4324,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32430,"WGS 72BE / UTM zone 30N",9001,4324,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32431,"WGS 72BE / UTM zone 31N",9001,4324,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32432,"WGS 72BE / UTM zone 32N",9001,4324,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32433,"WGS 72BE / UTM zone 33N",9001,4324,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32434,"WGS 72BE / UTM zone 34N",9001,4324,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32435,"WGS 72BE / UTM zone 35N",9001,4324,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32436,"WGS 72BE / UTM zone 36N",9001,4324,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32437,"WGS 72BE / UTM zone 37N",9001,4324,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32438,"WGS 72BE / UTM zone 38N",9001,4324,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32439,"WGS 72BE / UTM zone 39N",9001,4324,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32440,"WGS 72BE / UTM zone 40N",9001,4324,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32441,"WGS 72BE / UTM zone 41N",9001,4324,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32442,"WGS 72BE / UTM zone 42N",9001,4324,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32443,"WGS 72BE / UTM zone 43N",9001,4324,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32444,"WGS 72BE / UTM zone 44N",9001,4324,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32445,"WGS 72BE / UTM zone 45N",9001,4324,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32446,"WGS 72BE / UTM zone 46N",9001,4324,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32447,"WGS 72BE / UTM zone 47N",9001,4324,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32448,"WGS 72BE / UTM zone 48N",9001,4324,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32449,"WGS 72BE / UTM zone 49N",9001,4324,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32450,"WGS 72BE / UTM zone 50N",9001,4324,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32451,"WGS 72BE / UTM zone 51N",9001,4324,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32452,"WGS 72BE / UTM zone 52N",9001,4324,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32453,"WGS 72BE / UTM zone 53N",9001,4324,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32454,"WGS 72BE / UTM zone 54N",9001,4324,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32455,"WGS 72BE / UTM zone 55N",9001,4324,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32456,"WGS 72BE / UTM zone 56N",9001,4324,16056,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32457,"WGS 72BE / UTM zone 57N",9001,4324,16057,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32458,"WGS 72BE / UTM zone 58N",9001,4324,16058,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32459,"WGS 72BE / UTM zone 59N",9001,4324,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32460,"WGS 72BE / UTM zone 60N",9001,4324,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32501,"WGS 72BE / UTM zone 1S",9001,4324,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32502,"WGS 72BE / UTM zone 2S",9001,4324,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32503,"WGS 72BE / UTM zone 3S",9001,4324,16103,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32504,"WGS 72BE / UTM zone 4S",9001,4324,16104,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32505,"WGS 72BE / UTM zone 5S",9001,4324,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32506,"WGS 72BE / UTM zone 6S",9001,4324,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32507,"WGS 72BE / UTM zone 7S",9001,4324,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32508,"WGS 72BE / UTM zone 8S",9001,4324,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32509,"WGS 72BE / UTM zone 9S",9001,4324,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32510,"WGS 72BE / UTM zone 10S",9001,4324,16110,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32511,"WGS 72BE / UTM zone 11S",9001,4324,16111,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32512,"WGS 72BE / UTM zone 12S",9001,4324,16112,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32513,"WGS 72BE / UTM zone 13S",9001,4324,16113,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32514,"WGS 72BE / UTM zone 14S",9001,4324,16114,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32515,"WGS 72BE / UTM zone 15S",9001,4324,16115,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32516,"WGS 72BE / UTM zone 16S",9001,4324,16116,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32517,"WGS 72BE / UTM zone 17S",9001,4324,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32518,"WGS 72BE / UTM zone 18S",9001,4324,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32519,"WGS 72BE / UTM zone 19S",9001,4324,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32520,"WGS 72BE / UTM zone 20S",9001,4324,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32521,"WGS 72BE / UTM zone 21S",9001,4324,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32522,"WGS 72BE / UTM zone 22S",9001,4324,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32523,"WGS 72BE / UTM zone 23S",9001,4324,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32524,"WGS 72BE / UTM zone 24S",9001,4324,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32525,"WGS 72BE / UTM zone 25S",9001,4324,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32526,"WGS 72BE / UTM zone 26S",9001,4324,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32527,"WGS 72BE / UTM zone 27S",9001,4324,16127,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32528,"WGS 72BE / UTM zone 28S",9001,4324,16128,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32529,"WGS 72BE / UTM zone 29S",9001,4324,16129,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32530,"WGS 72BE / UTM zone 30S",9001,4324,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32531,"WGS 72BE / UTM zone 31S",9001,4324,16131,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32532,"WGS 72BE / UTM zone 32S",9001,4324,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32533,"WGS 72BE / UTM zone 33S",9001,4324,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32534,"WGS 72BE / UTM zone 34S",9001,4324,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32535,"WGS 72BE / UTM zone 35S",9001,4324,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32536,"WGS 72BE / UTM zone 36S",9001,4324,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32537,"WGS 72BE / UTM zone 37S",9001,4324,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32538,"WGS 72BE / UTM zone 38S",9001,4324,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32539,"WGS 72BE / UTM zone 39S",9001,4324,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32540,"WGS 72BE / UTM zone 40S",9001,4324,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32541,"WGS 72BE / UTM zone 41S",9001,4324,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32542,"WGS 72BE / UTM zone 42S",9001,4324,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32543,"WGS 72BE / UTM zone 43S",9001,4324,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32544,"WGS 72BE / UTM zone 44S",9001,4324,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32545,"WGS 72BE / UTM zone 45S",9001,4324,16145,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32546,"WGS 72BE / UTM zone 46S",9001,4324,16146,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32547,"WGS 72BE / UTM zone 47S",9001,4324,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32548,"WGS 72BE / UTM zone 48S",9001,4324,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32549,"WGS 72BE / UTM zone 49S",9001,4324,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32550,"WGS 72BE / UTM zone 50S",9001,4324,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32551,"WGS 72BE / UTM zone 51S",9001,4324,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32552,"WGS 72BE / UTM zone 52S",9001,4324,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32553,"WGS 72BE / UTM zone 53S",9001,4324,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32554,"WGS 72BE / UTM zone 54S",9001,4324,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32555,"WGS 72BE / UTM zone 55S",9001,4324,16155,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32556,"WGS 72BE / UTM zone 56S",9001,4324,16156,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32557,"WGS 72BE / UTM zone 57S",9001,4324,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32558,"WGS 72BE / UTM zone 58S",9001,4324,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32559,"WGS 72BE / UTM zone 59S",9001,4324,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32560,"WGS 72BE / UTM zone 60S",9001,4324,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32600,"WGS 84 / UTM grid system (northern hemisphere)",9001,4326,16000,9824,1,0,4400,8801,0,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,8830,-180,9102,8831,6,9102,,,,,,,,,,
+32601,"WGS 84 / UTM zone 1N",9001,4326,16001,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32602,"WGS 84 / UTM zone 2N",9001,4326,16002,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32603,"WGS 84 / UTM zone 3N",9001,4326,16003,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32604,"WGS 84 / UTM zone 4N",9001,4326,16004,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32605,"WGS 84 / UTM zone 5N",9001,4326,16005,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32606,"WGS 84 / UTM zone 6N",9001,4326,16006,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32607,"WGS 84 / UTM zone 7N",9001,4326,16007,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32608,"WGS 84 / UTM zone 8N",9001,4326,16008,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32609,"WGS 84 / UTM zone 9N",9001,4326,16009,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32610,"WGS 84 / UTM zone 10N",9001,4326,16010,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32611,"WGS 84 / UTM zone 11N",9001,4326,16011,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32612,"WGS 84 / UTM zone 12N",9001,4326,16012,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32613,"WGS 84 / UTM zone 13N",9001,4326,16013,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32614,"WGS 84 / UTM zone 14N",9001,4326,16014,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32615,"WGS 84 / UTM zone 15N",9001,4326,16015,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32616,"WGS 84 / UTM zone 16N",9001,4326,16016,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32617,"WGS 84 / UTM zone 17N",9001,4326,16017,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32618,"WGS 84 / UTM zone 18N",9001,4326,16018,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32619,"WGS 84 / UTM zone 19N",9001,4326,16019,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32620,"WGS 84 / UTM zone 20N",9001,4326,16020,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32621,"WGS 84 / UTM zone 21N",9001,4326,16021,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32622,"WGS 84 / UTM zone 22N",9001,4326,16022,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32623,"WGS 84 / UTM zone 23N",9001,4326,16023,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32624,"WGS 84 / UTM zone 24N",9001,4326,16024,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32625,"WGS 84 / UTM zone 25N",9001,4326,16025,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32626,"WGS 84 / UTM zone 26N",9001,4326,16026,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32627,"WGS 84 / UTM zone 27N",9001,4326,16027,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32628,"WGS 84 / UTM zone 28N",9001,4326,16028,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32629,"WGS 84 / UTM zone 29N",9001,4326,16029,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32630,"WGS 84 / UTM zone 30N",9001,4326,16030,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32631,"WGS 84 / UTM zone 31N",9001,4326,16031,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32632,"WGS 84 / UTM zone 32N",9001,4326,16032,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32633,"WGS 84 / UTM zone 33N",9001,4326,16033,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32634,"WGS 84 / UTM zone 34N",9001,4326,16034,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32635,"WGS 84 / UTM zone 35N",9001,4326,16035,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32636,"WGS 84 / UTM zone 36N",9001,4326,16036,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32637,"WGS 84 / UTM zone 37N",9001,4326,16037,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32638,"WGS 84 / UTM zone 38N",9001,4326,16038,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32639,"WGS 84 / UTM zone 39N",9001,4326,16039,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32640,"WGS 84 / UTM zone 40N",9001,4326,16040,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32641,"WGS 84 / UTM zone 41N",9001,4326,16041,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32642,"WGS 84 / UTM zone 42N",9001,4326,16042,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32643,"WGS 84 / UTM zone 43N",9001,4326,16043,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32644,"WGS 84 / UTM zone 44N",9001,4326,16044,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32645,"WGS 84 / UTM zone 45N",9001,4326,16045,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32646,"WGS 84 / UTM zone 46N",9001,4326,16046,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32647,"WGS 84 / UTM zone 47N",9001,4326,16047,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32648,"WGS 84 / UTM zone 48N",9001,4326,16048,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32649,"WGS 84 / UTM zone 49N",9001,4326,16049,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32650,"WGS 84 / UTM zone 50N",9001,4326,16050,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32651,"WGS 84 / UTM zone 51N",9001,4326,16051,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32652,"WGS 84 / UTM zone 52N",9001,4326,16052,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32653,"WGS 84 / UTM zone 53N",9001,4326,16053,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32654,"WGS 84 / UTM zone 54N",9001,4326,16054,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32655,"WGS 84 / UTM zone 55N",9001,4326,16055,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32656,"WGS 84 / UTM zone 56N",9001,4326,16056,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32657,"WGS 84 / UTM zone 57N",9001,4326,16057,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32658,"WGS 84 / UTM zone 58N",9001,4326,16058,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32659,"WGS 84 / UTM zone 59N",9001,4326,16059,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32660,"WGS 84 / UTM zone 60N",9001,4326,16060,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,,
+32661,"WGS 84 / UPS North (N,E)",9001,4326,16061,9810,1,0,4493,8801,90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+32662,"WGS 84 / Plate Carree",9001,4326,19968,9823,1,1,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,,
+32663,"WGS 84 / World Equidistant Cylindrical",9001,4326,19846,9842,1,1,4499,8801,0,9102,8806,0,9001,8807,0,9001,8822,0,9102,,,,,,,,,,,,,,,,
+32664,"WGS 84 / BLM 14N (ftUS)",9003,4326,15914,9807,1,0,4497,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32665,"WGS 84 / BLM 15N (ftUS)",9003,4326,15915,9807,1,0,4497,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32666,"WGS 84 / BLM 16N (ftUS)",9003,4326,15916,9807,1,0,4497,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32667,"WGS 84 / BLM 17N (ftUS)",9003,4326,15917,9807,1,0,4497,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,1640416.67,9003,8807,0,9003,,,,,,,,,,,,,
+32700,"WGS 84 / UTM grid system (southern hemisphere)",9001,4326,16100,9824,1,0,4400,8801,0,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,8830,-180,9102,8831,6,9102,,,,,,,,,,
+32701,"WGS 84 / UTM zone 1S",9001,4326,16101,9807,1,0,4400,8801,0,9102,8802,-177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32702,"WGS 84 / UTM zone 2S",9001,4326,16102,9807,1,0,4400,8801,0,9102,8802,-171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32703,"WGS 84 / UTM zone 3S",9001,4326,16103,9807,1,0,4400,8801,0,9102,8802,-165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32704,"WGS 84 / UTM zone 4S",9001,4326,16104,9807,1,0,4400,8801,0,9102,8802,-159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32705,"WGS 84 / UTM zone 5S",9001,4326,16105,9807,1,0,4400,8801,0,9102,8802,-153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32706,"WGS 84 / UTM zone 6S",9001,4326,16106,9807,1,0,4400,8801,0,9102,8802,-147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32707,"WGS 84 / UTM zone 7S",9001,4326,16107,9807,1,0,4400,8801,0,9102,8802,-141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32708,"WGS 84 / UTM zone 8S",9001,4326,16108,9807,1,0,4400,8801,0,9102,8802,-135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32709,"WGS 84 / UTM zone 9S",9001,4326,16109,9807,1,0,4400,8801,0,9102,8802,-129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32710,"WGS 84 / UTM zone 10S",9001,4326,16110,9807,1,0,4400,8801,0,9102,8802,-123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32711,"WGS 84 / UTM zone 11S",9001,4326,16111,9807,1,0,4400,8801,0,9102,8802,-117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32712,"WGS 84 / UTM zone 12S",9001,4326,16112,9807,1,0,4400,8801,0,9102,8802,-111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32713,"WGS 84 / UTM zone 13S",9001,4326,16113,9807,1,0,4400,8801,0,9102,8802,-105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32714,"WGS 84 / UTM zone 14S",9001,4326,16114,9807,1,0,4400,8801,0,9102,8802,-99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32715,"WGS 84 / UTM zone 15S",9001,4326,16115,9807,1,0,4400,8801,0,9102,8802,-93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32716,"WGS 84 / UTM zone 16S",9001,4326,16116,9807,1,0,4400,8801,0,9102,8802,-87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32717,"WGS 84 / UTM zone 17S",9001,4326,16117,9807,1,0,4400,8801,0,9102,8802,-81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32718,"WGS 84 / UTM zone 18S",9001,4326,16118,9807,1,0,4400,8801,0,9102,8802,-75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32719,"WGS 84 / UTM zone 19S",9001,4326,16119,9807,1,0,4400,8801,0,9102,8802,-69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32720,"WGS 84 / UTM zone 20S",9001,4326,16120,9807,1,0,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32721,"WGS 84 / UTM zone 21S",9001,4326,16121,9807,1,0,4400,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32722,"WGS 84 / UTM zone 22S",9001,4326,16122,9807,1,0,4400,8801,0,9102,8802,-51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32723,"WGS 84 / UTM zone 23S",9001,4326,16123,9807,1,0,4400,8801,0,9102,8802,-45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32724,"WGS 84 / UTM zone 24S",9001,4326,16124,9807,1,0,4400,8801,0,9102,8802,-39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32725,"WGS 84 / UTM zone 25S",9001,4326,16125,9807,1,0,4400,8801,0,9102,8802,-33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32726,"WGS 84 / UTM zone 26S",9001,4326,16126,9807,1,0,4400,8801,0,9102,8802,-27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32727,"WGS 84 / UTM zone 27S",9001,4326,16127,9807,1,0,4400,8801,0,9102,8802,-21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32728,"WGS 84 / UTM zone 28S",9001,4326,16128,9807,1,0,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32729,"WGS 84 / UTM zone 29S",9001,4326,16129,9807,1,0,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32730,"WGS 84 / UTM zone 30S",9001,4326,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32731,"WGS 84 / UTM zone 31S",9001,4326,16131,9807,1,0,4400,8801,0,9102,8802,3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32732,"WGS 84 / UTM zone 32S",9001,4326,16132,9807,1,0,4400,8801,0,9102,8802,9,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32733,"WGS 84 / UTM zone 33S",9001,4326,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32734,"WGS 84 / UTM zone 34S",9001,4326,16134,9807,1,0,4400,8801,0,9102,8802,21,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32735,"WGS 84 / UTM zone 35S",9001,4326,16135,9807,1,0,4400,8801,0,9102,8802,27,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32736,"WGS 84 / UTM zone 36S",9001,4326,16136,9807,1,0,4400,8801,0,9102,8802,33,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32737,"WGS 84 / UTM zone 37S",9001,4326,16137,9807,1,0,4400,8801,0,9102,8802,39,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32738,"WGS 84 / UTM zone 38S",9001,4326,16138,9807,1,0,4400,8801,0,9102,8802,45,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32739,"WGS 84 / UTM zone 39S",9001,4326,16139,9807,1,0,4400,8801,0,9102,8802,51,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32740,"WGS 84 / UTM zone 40S",9001,4326,16140,9807,1,0,4400,8801,0,9102,8802,57,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32741,"WGS 84 / UTM zone 41S",9001,4326,16141,9807,1,0,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32742,"WGS 84 / UTM zone 42S",9001,4326,16142,9807,1,0,4400,8801,0,9102,8802,69,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32743,"WGS 84 / UTM zone 43S",9001,4326,16143,9807,1,0,4400,8801,0,9102,8802,75,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32744,"WGS 84 / UTM zone 44S",9001,4326,16144,9807,1,0,4400,8801,0,9102,8802,81,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32745,"WGS 84 / UTM zone 45S",9001,4326,16145,9807,1,0,4400,8801,0,9102,8802,87,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32746,"WGS 84 / UTM zone 46S",9001,4326,16146,9807,1,0,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32747,"WGS 84 / UTM zone 47S",9001,4326,16147,9807,1,0,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32748,"WGS 84 / UTM zone 48S",9001,4326,16148,9807,1,0,4400,8801,0,9102,8802,105,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32749,"WGS 84 / UTM zone 49S",9001,4326,16149,9807,1,0,4400,8801,0,9102,8802,111,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32750,"WGS 84 / UTM zone 50S",9001,4326,16150,9807,1,0,4400,8801,0,9102,8802,117,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32751,"WGS 84 / UTM zone 51S",9001,4326,16151,9807,1,0,4400,8801,0,9102,8802,123,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32752,"WGS 84 / UTM zone 52S",9001,4326,16152,9807,1,0,4400,8801,0,9102,8802,129,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32753,"WGS 84 / UTM zone 53S",9001,4326,16153,9807,1,0,4400,8801,0,9102,8802,135,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32754,"WGS 84 / UTM zone 54S",9001,4326,16154,9807,1,0,4400,8801,0,9102,8802,141,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32755,"WGS 84 / UTM zone 55S",9001,4326,16155,9807,1,0,4400,8801,0,9102,8802,147,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32756,"WGS 84 / UTM zone 56S",9001,4326,16156,9807,1,0,4400,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32757,"WGS 84 / UTM zone 57S",9001,4326,16157,9807,1,0,4400,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32758,"WGS 84 / UTM zone 58S",9001,4326,16158,9807,1,0,4400,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32759,"WGS 84 / UTM zone 59S",9001,4326,16159,9807,1,0,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32760,"WGS 84 / UTM zone 60S",9001,4326,16160,9807,1,0,4400,8801,0,9102,8802,177,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
+32761,"WGS 84 / UPS South (N,E)",9001,4326,16161,9810,1,0,4494,8801,-90,9102,8802,0,9102,8805,0.994,9201,8806,2000000,9001,8807,2000000,9001,,,,,,,,,,,,,
+32766,"WGS 84 / TM 36 SE",9001,4326,16636,9807,1,0,4400,8801,0,9102,8802,36,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,,
diff --git a/resources/qgis_global_settings.ini b/resources/qgis_global_settings.ini
index 664898da56..41b56087a4 100644
--- a/resources/qgis_global_settings.ini
+++ b/resources/qgis_global_settings.ini
@@ -54,6 +54,22 @@ maxRecentProjects=20
 # notification to be shown when the task completes.
 minTaskLengthForSystemNotification=5
 
+# Whether to prompt users for a selection when multiple possible transformation paths exist
+# when transforming coordinates. If false, a reasonable choice will be estimated by default
+# without asking users. If true, users are always required to make this choice themselves.
+projections\promptWhenMultipleTransformsExist=true
+
+# Default CRS for newly created projects. Accepts "auth:code" style strings (e.g. EPSG:4326),
+# PROJ strings (must be prefixed with PROJ4:, e.g. "PROJ4:+proj ...."), or WKT strings (must
+# be prefixed with WKT:, e.g. "WKT:<wkt string>")
+# This is only used when projections\newProjectCrsBehavior is set to UsePresetCrs
+projections\defaultProjectCrs=EPSG:4326
+
+# Specifies the method to set the CRS for a newly created project. Valid options are
+# "UseCrsOfFirstLayerAdded" - sets the project CRS to match the CRS of the first layer added to the project
+# "UsePresetCrs" - always use a preset CRS, see projections\defaultProjectCrs
+projections\newProjectCrsBehavior=UseCrsOfFirstLayerAdded
+
 [core]
 # Whether or not to anonymize newly created projects
 # If set to 1, then project metadata items like AUTHOR and CREATION DATE
@@ -91,3 +107,5 @@ default_checks=
 # Enable problem resolution for geometry errors
 # This feature is experimental and has known issues.
 enable_problem_resolution=false
+
+
diff --git a/resources/vertcs.csv b/resources/vertcs.csv
new file mode 100644
index 0000000000..7bbc4cabc8
--- /dev/null
+++ b/resources/vertcs.csv
@@ -0,0 +1,205 @@
+"COORD_REF_SYS_CODE","COORD_REF_SYS_NAME","DATUM_CODE","DATUM_NAME","UOM_CODE","SHOW_CRS","DEPRECATED","COORD_SYS_CODE","COORD_OP_METHOD_CODE_1","PARM_1_1"
+3855,EGM2008 geoid height,1027,EGM2008 geoid,9001,1,0,6499,9665,"egm08_25.gtx"
+3886,Fao 1979 height,1028,Fao 1979,9001,1,0,6499,,
+3900,N2000 height,1030,N2000,9001,1,0,6499,,
+4440,NZVD2009 height,1039,New Zealand Vertical Datum 2009,9001,1,0,6499,,
+4458,Dunedin-Bluff 1960 height,1040,Dunedin-Bluff 1960,9001,1,0,6499,,
+5193,Incheon height,1049,Incheon,9001,1,0,6499,,
+5195,Trieste height,1050,Trieste,9001,1,0,6499,,
+5214,Genoa height,1051,Genoa,9001,1,0,6499,,
+5237,SLVD height,1054,Sri Lanka Vertical Datum,9001,1,0,6499,,
+5317,FVR09 height,1059,Faroe Islands Vertical Reference 2009,9001,1,0,6499,,
+5336,Black Sea depth,5134,Black Sea,9001,1,0,6498,,
+5597,FCSVR10 height,1079,Fehmarnbelt Vertical Reference 2010,9001,1,0,6499,,
+5600,NGPF height,5195,Nivellement General de Polynesie Francaise,9001,1,0,6499,,
+5601,IGN 1966 height,5196,IGN 1966,9001,1,0,6499,,
+5602,Moorea SAU 1981 height,5197,Moorea SAU 1981,9001,1,0,6499,,
+5603,Raiatea SAU 2001 height,5198,Raiatea SAU 2001,9001,1,0,6499,,
+5604,Maupiti SAU 2001 height,5199,Maupiti SAU 2001,9001,1,0,6499,,
+5605,Huahine SAU 2001 height,5200,Huahine SAU 2001,9001,1,0,6499,,
+5606,Tahaa SAU 2001 height,5201,Tahaa SAU 2001,9001,1,0,6499,,
+5607,Bora Bora SAU 2001 height,5202,Bora Bora SAU 2001,9001,1,0,6499,,
+5608,IGLD 1955 height,5204,International Great Lakes Datum 1955,9001,1,0,6499,,
+5609,IGLD 1985 height,5205,International Great Lakes Datum 1985,9001,1,0,6499,,
+5610,HVRS71 height,5207,Croatian Vertical Reference System 1971,9001,1,0,6499,,
+5611,Caspian height,5106,Caspian Sea,9001,1,0,6499,,
+5612,Baltic depth,5105,Baltic Sea,9001,1,0,6498,,
+5613,RH2000 height,5208,Rikets hojdsystem 2000,9001,1,0,6499,,
+5614,"KOC WD depth (ft)",5187,KOC Well Datum,9002,1,0,6495,,
+5615,RH00 height,5209,Rikets hojdsystem 1900,9001,1,0,6499,,
+5616,IGN 1988 LS height,5210,IGN 1988 LS,9001,1,0,6499,,
+5617,IGN 1988 MG height,5211,IGN 1988 MG,9001,1,0,6499,,
+5618,IGN 1992 LD height,5212,IGN 1992 LD,9001,1,0,6499,,
+5619,IGN 1988 SB height,5213,IGN 1988 SB,9001,1,0,6499,,
+5620,IGN 1988 SM height,5214,IGN 1988 SM,9001,1,0,6499,,
+5621,EVRF2007 height,5215,European Vertical Reference Frame 2007,9001,1,0,6499,,
+5701,ODN height,5101,Ordnance Datum Newlyn,9001,1,0,6499,,
+5702,"NGVD29 height (ftUS)",5102,National Geodetic Vertical Datum 1929,9003,1,0,6497,,
+5703,NAVD88 height,5103,North American Vertical Datum 1988,9001,1,0,6499,9665,"g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx"
+5704,Yellow Sea,5104,Yellow Sea 1956,9001,1,1,6499,,
+5705,Baltic height,5105,Baltic Sea,9001,1,0,6499,,
+5706,Caspian depth,5106,Caspian Sea,9001,1,0,6498,,
+5709,NAP height,5109,Normaal Amsterdams Peil,9001,1,0,6499,,
+5710,Ostend height,5110,Ostend,9001,1,0,6499,,
+5711,AHD height,5111,Australian Height Datum,9001,1,0,6499,,
+5712,"AHD (Tasmania) height",5112,"Australian Height Datum (Tasmania)",9001,1,0,6499,,
+5713,CGVD28 height,5114,Canadian Geodetic Vertical Datum of 1928,9001,1,0,6499,,
+5714,MSL height,5100,Mean Sea Level,9001,1,0,6499,,
+5715,MSL depth,5100,Mean Sea Level,9001,1,0,6498,,
+5716,Piraeus height,5115,Piraeus Harbour 1986,9001,1,0,6499,,
+5717,N60 height,5116,Helsinki 1960,9001,1,0,6499,,
+5718,RH70 height,5117,Rikets hojdsystem 1970,9001,1,0,6499,,
+5719,NGF Lallemand height,5118,Nivellement General de la France - Lallemand,9001,1,0,6499,,
+5720,NGF-IGN69 height,5119,Nivellement General de la France - IGN69,9001,1,0,6499,,
+5721,NGF-IGN78 height,5120,Nivellement General de la France - IGN78,9001,1,0,6499,,
+5722,Maputo height,5121,Maputo,9001,1,0,6499,,
+5723,JSLD69 height,5122,Japanese Standard Levelling Datum 1969,9001,1,0,6499,,
+5724,PHD93 height,5123,PDO Height Datum 1993,9001,1,0,6499,,
+5725,Fahud HD height,5124,Fahud Height Datum,9001,1,0,6499,,
+5726,Ha Tien 1960 height,5125,Ha Tien 1960,9001,1,0,6499,,
+5727,Hon Dau 1992 height,5126,Hon Dau 1992,9001,1,0,6499,,
+5728,LN02 height,5127,Landesnivellement 1902,9001,1,0,6499,,
+5729,LHN95 height,5128,Landeshohennetz 1995,9001,1,0,6499,,
+5730,EVRF2000 height,5129,European Vertical Reference Frame 2000,9001,1,0,6499,,
+5731,Malin Head height,5130,Malin Head,9001,1,0,6499,,
+5732,Belfast height,5131,Belfast Lough,9001,1,0,6499,,
+5733,DNN height,5132,Dansk Normal Nul,9001,1,0,6499,,
+5734,AIOC95 depth,5133,AIOC 1995,9001,1,0,6498,,
+5735,Black Sea height,5134,Black Sea,9001,1,0,6499,,
+5736,Yellow Sea 1956 height,5104,Yellow Sea 1956,9001,1,0,6499,,
+5737,Yellow Sea 1985 height,5137,Yellow Sea 1985,9001,1,0,6499,,
+5738,HKPD height,5135,Hong Kong Principal Datum,9001,1,0,6499,,
+5739,HKCD depth,5136,Hong Kong Chart Datum,9001,1,0,6498,,
+5740,ODN Orkney height,5138,"Ordnance Datum Newlyn (Orkney Isles)",9001,1,0,6499,,
+5741,Fair Isle height,5139,Fair Isle,9001,1,0,6499,,
+5742,Lerwick height,5140,Lerwick,9001,1,0,6499,,
+5743,Foula height,5141,Foula,9001,1,0,6499,,
+5744,Sule Skerry height,5142,Sule Skerry,9001,1,0,6499,,
+5745,North Rona height,5143,North Rona,9001,1,0,6499,,
+5746,Stornoway height,5144,Stornoway,9001,1,0,6499,,
+5747,St Kilda height,5145,St Kilda,9001,1,0,6499,,
+5748,Flannan Isles height,5146,Flannan Isles,9001,1,0,6499,,
+5749,St Marys height,5147,St Marys,9001,1,0,6499,,
+5750,Douglas height,5148,Douglas,9001,1,0,6499,,
+5751,Fao height,5149,Fao,9001,1,0,6499,,
+5752,Bandar Abbas height,5150,Bandar Abbas,9001,1,0,6499,,
+5753,NGNC height,5151,Nivellement General de Nouvelle Caledonie,9001,1,0,6499,,
+5754,"Poolbeg height (ft(Br36))",5152,Poolbeg,9095,1,0,6496,,
+5755,NGG1977 height,5153,Nivellement General Guyanais 1977,9001,1,0,6499,,
+5756,Martinique 1987 height,5154,Martinique 1987,9001,1,0,6499,,
+5757,Guadeloupe 1988 height,5155,Guadeloupe 1988,9001,1,0,6499,,
+5758,Reunion 1989 height,5156,Reunion 1989,9001,1,0,6499,,
+5759,Auckland 1946 height,5157,Auckland 1946,9001,1,0,6499,,
+5760,Bluff 1955 height,5158,Bluff 1955,9001,1,0,6499,,
+5761,Dunedin 1958 height,5159,Dunedin 1958,9001,1,0,6499,,
+5762,Gisborne 1926 height,5160,Gisborne 1926,9001,1,0,6499,,
+5763,Lyttelton 1937 height,5161,Lyttelton 1937,9001,1,0,6499,,
+5764,Moturiki 1953 height,5162,Moturiki 1953,9001,1,0,6499,,
+5765,Napier 1962 height,5163,Napier 1962,9001,1,0,6499,,
+5766,Nelson 1955 height,5164,Nelson 1955,9001,1,0,6499,,
+5767,One Tree Point 1964 height,5165,One Tree Point 1964,9001,1,0,6499,,
+5768,Tararu 1952 height,5166,Tararu 1952,9001,1,0,6499,,
+5769,Taranaki 1970 height,5167,Taranaki 1970,9001,1,0,6499,,
+5770,Wellington 1953 height,5168,Wellington 1953,9001,1,0,6499,,
+5771,Chatham Island 1959 height,5169,"Waitangi (Chatham Island) 1959",9001,1,0,6499,,
+5772,Stewart Island 1977 height,5170,Stewart Island 1977,9001,1,0,6499,,
+5773,EGM96 geoid height,5171,EGM96 geoid,9001,1,0,6499,9665,"egm96_15.gtx"
+5774,NG-L height,5172,Nivellement General du Luxembourg,9001,1,0,6499,,
+5775,Antalya height,5173,Antalya,9001,1,0,6499,,
+5776,NN54 height,5174,Norway Normal Null 1954,9001,1,0,6499,,
+5777,Durres height,5175,Durres,9001,1,0,6499,,
+5778,GHA height,5176,Gebrauchshohen ADRIA,9001,1,0,6499,,
+5779,NVN99 height,5177,National Vertical Network 1999,9001,1,0,6499,,
+5780,Cascais height,5178,Cascais,9001,1,0,6499,,
+5781,Constanta height,5179,Constanta,9001,1,0,6499,,
+5782,Alicante height,5180,Alicante,9001,1,0,6499,,
+5783,DHHN92 height,5181,Deutsches Haupthoehennetz 1992,9001,1,0,6499,,
+5784,DHHN85 height,5182,Deutsches Haupthoehennetz 1985,9001,1,0,6499,,
+5785,SNN76 height,5183,Staatlichen Nivellementnetzes 1976,9001,1,0,6499,,
+5786,Baltic 1982 height,5184,Baltic 1982,9001,1,0,6499,,
+5787,EOMA 1980 height,5185,Baltic 1980,9001,1,0,6499,,
+5788,Kuwait PWD height,5186,Kuwait PWD,9001,1,0,6499,,
+5789,KOC WD depth,5187,KOC Well Datum,9001,1,0,6498,,
+5790,KOC CD height,5188,KOC Construction Datum,9001,1,0,6499,,
+5791,NGC 1948 height,5189,Nivellement General de la Corse 1948,9001,1,0,6499,,
+5792,Danger 1950 height,5190,Danger 1950,9001,1,0,6499,,
+5793,Mayotte 1950 height,5191,Mayotte 1950,9001,1,0,6499,,
+5794,Martinique 1955 height,5192,Martinique 1955,9001,1,0,6499,,
+5795,Guadeloupe 1951 height,5193,Guadeloupe 1951,9001,1,0,6499,,
+5796,Lagos 1955 height,5194,Lagos 1955,9001,1,0,6499,,
+5797,AIOC95 height,5133,AIOC 1995,9001,1,0,6499,,
+5798,EGM84 height,5203,EGM84 geoid,9001,1,0,6499,,
+5799,DVR90 height,5206,Dansk Vertikal Reference 1990,9001,1,0,6499,,
+5829,Instantaneous Water Level height,5113,Instantaneous Water Level,9001,1,0,6499,,
+5831,Instantaneous Water Level depth,5113,Instantaneous Water Level,9001,1,0,6498,,
+5843,Ras Ghumays height,1146,Ras Ghumays,9001,1,0,6499,,
+5861,LAT depth,1080,Lowest Astronomic Tide,9001,1,0,6498,,
+5862,LLWLT depth,1083,Lower Low Water Large Tide,9001,1,0,6498,,
+5863,ISLW depth,1085,Indian Spring Low Water,9001,1,0,6498,,
+5864,MLLWS depth,1086,Mean Lower Low Water Spring Tides,9001,1,0,6498,,
+5865,MLWS depth,1087,Mean Low Water Spring Tides,9001,1,0,6498,,
+5866,MLLW depth,1089,Mean Lower Low Water,9001,1,0,6498,,
+5867,MLW depth,1091,Mean Low Water,9001,1,0,6498,,
+5868,MHW height,1092,Mean High Water,9001,1,0,6499,,
+5869,MHHW height,1090,Mean Higher High Water,9001,1,0,6499,,
+5870,MHWS height,1088,Mean High Water Spring Tides,9001,1,0,6499,,
+5871,HHWLT height,1084,Higher High Water Large Tide,9001,1,0,6499,,
+5872,HAT height,1082,Highest Astronomic Tide,9001,1,0,6499,,
+5873,Low Water depth,1093,Low Water,9001,1,0,6498,,
+5874,High Water height,1094,High Water,9001,1,0,6499,,
+5941,NN2000 height,1096,Norway Normal Null 2000,9001,1,0,6499,,
+6130,"GCVD54 height (ft)",1097,Grand Cayman Vertical Datum 1954,9002,1,0,1030,,
+6131,"LCVD61 height (ft)",1098,Little Cayman Vertical Datum 1961,9002,1,0,1030,,
+6132,"CBVD61 height (ft)",1099,Cayman Brac Vertical Datum 1961,9002,1,0,1030,,
+6178,Cais da Pontinha - Funchal height,1101,Cais da Pontinha - Funchal,9001,1,0,6499,,
+6179,Cais da Vila - Porto Santo height,1102,Cais da Vila - Porto Santo,9001,1,0,6499,,
+6180,Cais das Velas height,1103,Cais das Velas,9001,1,0,6499,,
+6181,Horta height,1104,Horta,9001,1,0,6499,,
+6182,Cais da Madalena height,1105,Cais da Madalena,9001,1,0,6499,,
+6183,Santa Cruz da Graciosa height,1106,Santa Cruz da Graciosa,9001,1,0,6499,,
+6184,Cais da Figueirinha - Angra do Heroismo height,1107,Cais da Figueirinha - Angra do Heroismo,9001,1,0,6499,,
+6185,Santa Cruz das Flores height,1108,Santa Cruz das Flores,9001,1,0,6499,,
+6186,Cais da Vila do Porto height,1109,Cais da Vila do Porto,9001,1,0,6499,,
+6187,Ponta Delgada height,1110,Ponta Delgada,9001,1,0,6499,,
+6357,NAVD88 depth,5103,North American Vertical Datum 1988,9001,1,0,6498,,
+6358,"NAVD88 depth (ftUS)",5103,North American Vertical Datum 1988,9003,1,0,1043,,
+6359,"NGVD29 depth (ftUS)",5102,National Geodetic Vertical Datum 1929,9003,1,0,1043,,
+6360,"NAVD88 height (ftUS)",5103,North American Vertical Datum 1988,9003,1,0,6497,,
+6638,Tutuila 1962 height,1121,Tutuila Vertical Datum of 1962,9001,1,0,6499,,
+6639,Guam 1963 height,1122,Guam Vertical Datum of 1963,9001,1,0,6499,,
+6640,NMVD03 height,1119,Northern Marianas Vertical Datum of 2003,9001,1,0,6499,,
+6641,PRVD02 height,1123,Puerto Rico Vertical Datum of 2002,9001,1,0,6499,,
+6642,VIVD09 height,1124,Virgin Islands Vertical Datum of 2009,9001,1,0,6499,,
+6643,ASVD02 height,1125,American Samoa Vertical Datum of 2002,9001,1,0,6499,,
+6644,GUVD04 height,1126,Guam Vertical Datum of 2004,9001,1,0,6499,,
+6647,CGVD2013 height,1127,Canadian Geodetic Vertical Datum of 2013,9001,1,0,6499,,
+6693,JSLD72 height,1129,Japanese Standard Levelling Datum 1972,9001,1,0,6499,,
+6694,"JGD2000 (vertical) height",1130,"Japanese Geodetic Datum 2000 (vertical)",9001,1,0,6499,,
+6695,"JGD2011 (vertical) height",1131,"Japanese Geodetic Datum 2011 (vertical)",9001,1,0,6499,,
+6916,SHD height,1140,Singapore Height Datum,9001,1,0,6499,,
+7446,Famagusta 1960 height,1148,Famagusta 1960,9001,1,0,6499,,
+7447,PNG08 height,1149,PNG08,9001,1,0,6499,,
+7651,Kumul 34 height,1150,Kumul 34,9001,1,0,6499,,
+7652,Kiunga height,1151,Kiunga,9001,1,0,6499,,
+7699,DHHN12 height,1161,Deutsches Haupthoehennetz 1912,9001,1,0,6499,,
+7700,Latvia 2000 height,1162,Latvian Height System 2000,9001,1,0,6499,,
+7707,"ODN (Offshore) height",1164,"Ordnance Datum Newlyn (Offshore)",9001,1,0,6499,,
+7832,POM96 height,1171,Port Moresby 1996,9001,1,0,6499,,
+7837,DHHN2016 height,1170,Deutsches Haupthoehennetz 2016,9001,1,0,6499,,
+7839,NZVD2016 height,1169,New Zealand Vertical Datum 2016,9001,1,0,6499,,
+7841,POM08 height,1172,Port Moresby 2008,9001,1,0,6499,,
+7888,Jamestown 1971 height,1175,Jamestown 1971,9001,1,0,6499,,
+7889,St. Helena Tritan 2011 height,1176,St. Helena Tritan Vertical Datum 2011,9001,1,0,6499,,
+7890,SHVD2015 height,1177,St. Helena Vertical Datum 2015,9001,1,0,6499,,
+7962,"Poolbeg height (m)",5152,Poolbeg,9001,1,0,6499,,
+7968,"NGVD29 height (m)",5102,National Geodetic Vertical Datum 1929,9001,1,0,6499,,
+7976,HKPD depth,5135,Hong Kong Principal Datum,9001,1,0,6498,,
+7979,KOC WD height,5187,KOC Well Datum,9001,1,0,6499,,
+8050,"MSL height (ft)",5100,Mean Sea Level,9002,1,0,1030,,
+8051,"MSL depth (ft)",5100,Mean Sea Level,9002,1,0,6495,,
+8052,"MSL height (ftUS)",5100,Mean Sea Level,9003,1,0,6497,,
+8053,"MSL depth (ftUS)",5100,Mean Sea Level,9003,1,0,1043,,
+8089,ISH2004 height,1190,Landshaedarkerfi Islands 2004,9001,1,0,6499,,
+8228,"NAVD88 height (ft)",5103,North American Vertical Datum 1988,9002,1,0,1030,,
+8266,GVR2000 height,1199,Greenland  Vertical Reference 2000,9001,1,0,6499,,
+8267,GVR2016 height,1200,Greenland Vertical Reference 2016,9001,1,0,6499,,
diff --git a/rpm/qgis.spec.template b/rpm/qgis.spec.template
index e2e3f0ac6a..c4be9361e5 100644
--- a/rpm/qgis.spec.template
+++ b/rpm/qgis.spec.template
@@ -176,7 +176,13 @@ Obsoletes:      python2-%{name} < %{version}-%{release}
 Summary:        Python integration and plug-ins for QGIS
 Requires:       %{name}%{?_isa} = %{combinedversion}-%{release}
 Requires:       gdal-python3
+# Starting from Fedora 30 python2-gdal package
+# has been renamed to gdal-python-tools
+%if 0%{?fedora} >= 30
 Requires:       gdal-python-tools
+%else
+Requires:       python2-gdal
+%endif
 Requires:       python3-future
 Requires:       python3-jinja2
 Requires:       python3-OWSLib
diff --git a/scripts/generate_test_mask_image.py b/scripts/generate_test_mask_image.py
index 5694c013ca..fa18d204e2 100755
--- a/scripts/generate_test_mask_image.py
+++ b/scripts/generate_test_mask_image.py
@@ -22,7 +22,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'February 2015'
 __copyright__ = '(C) 2015, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 # Generates (or updates) a unit test image mask, which is used to specify whether
diff --git a/scripts/mkuidefaults.py b/scripts/mkuidefaults.py
index 0cada8e9cf..e97d32fa5c 100755
--- a/scripts/mkuidefaults.py
+++ b/scripts/mkuidefaults.py
@@ -22,7 +22,7 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'June 2013'
 __copyright__ = '(C) 2013, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 import struct
diff --git a/scripts/parse_dash_results.py b/scripts/parse_dash_results.py
index 9c20adaf86..151dd49f0a 100755
--- a/scripts/parse_dash_results.py
+++ b/scripts/parse_dash_results.py
@@ -26,7 +26,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'October 2016'
 __copyright__ = '(C) 2016, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import sys
diff --git a/scripts/pyuic-wrapper.py b/scripts/pyuic-wrapper.py
index f1c654710c..06e1282da3 100644
--- a/scripts/pyuic-wrapper.py
+++ b/scripts/pyuic-wrapper.py
@@ -21,6 +21,6 @@ __author__ = 'Juergen E. Fischer'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Juergen E. Fischer'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis.PyQt.uic.pyuic
diff --git a/scripts/qgis_srs.sh b/scripts/qgis_srs.sh
index 3a712aa7f4..6306094e0e 100755
--- a/scripts/qgis_srs.sh
+++ b/scripts/qgis_srs.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 ###########################################################################
 #    qgis_srs.sh
 #    ---------------------
@@ -199,7 +199,7 @@ for i in $(awk 'NR>1' ${gdal_share}/pcs.csv | cut -d, -f1); do
 
   raw=$(epsg_tr.py -proj4 $i 2>&1 | tr "\n" " " | sed 's/  <> $//' | grep -v "^ERROR 6: ")
 
-  if [ -n "$raw" ]; then
+  if [[ -n "$raw" ]]; then
 
    no=$((no + 1))
    name=$(echo $raw | sed 's/^# //' | grep -o "^.\{1,\} <[[:digit:]]\{1,\}>" | sed 's/ <[[:digit:]]\{1,\}>//' | sed "s/'/''/g")
@@ -222,7 +222,7 @@ for i in $(awk 'NR>1' ${gdal_share}/gcs.csv | cut -d, -f1); do
 
   raw=$(epsg_tr.py -proj4 $i 2>&1 | tr "\n" " " | sed 's/  <> $//' | grep -v "^ERROR 6: ")
 
-  if [ -n "$raw" ]; then
+  if [[ -n "$raw" ]]; then
 
    no=$((no + 1))
    name=$(echo $raw | sed 's/^# //' | grep -o "^.\{1,\} <[[:digit:]]\{1,\}>" | sed 's/ <[[:digit:]]\{1,\}>//' | sed "s/'/''/g")
diff --git a/scripts/sip_include.sh b/scripts/sip_include.sh
index b8c84f4ebf..f35e18bebb 100755
--- a/scripts/sip_include.sh
+++ b/scripts/sip_include.sh
@@ -31,7 +31,11 @@ if [[ "$OSTYPE" =~ darwin* ]]; then
   GP=g
 fi
 
-modules=(core gui analysis server)
+if [[ -n $1 ]]; then
+  modules=("$1")
+else
+  modules=(core gui analysis server)
+fi
 sources=(HDRS MOC_HDRS SRCS)
 
 for module in "${modules[@]}"; do
@@ -62,7 +66,7 @@ for module in "${modules[@]}"; do
       sip=$(${GP}sed -r 's/(.*)\.h$/\1.sip/' <<< ${header})
       if_cond=$(grep -x -E '^(#define +)?SIP_IF_MODULE\((.*)\)$' src/${module}/${header} | \
         ${GP}sed -r -e 's/(#define +)?SIP_IF_MODULE\((.*)\)/%If (\2)/')
-      if [[ ! -z $if_cond ]]; then
+      if [[ -n $if_cond ]]; then
         echo "$if_cond" >> $file
       fi
       if [[ "$sip" == [0-9]* ]]; then
@@ -71,7 +75,7 @@ for module in "${modules[@]}"; do
         sip="./$sip"
       fi
       echo "%Include auto_generated/$sip" >> $file
-      if [[ ! -z $if_cond ]]; then
+      if [[ -n $if_cond ]]; then
         echo "%End" >> $file
       fi
     fi
diff --git a/scripts/spell_check/check_spelling.sh b/scripts/spell_check/check_spelling.sh
index 71f0589dea..4eff44f018 100755
--- a/scripts/spell_check/check_spelling.sh
+++ b/scripts/spell_check/check_spelling.sh
@@ -85,7 +85,7 @@ declare -A GLOBREP_IGNORE=()
 ERRORFOUND=NO
 
 for I in $(seq -f '%02g' 0  $((SPLIT-1)) ) ; do
-  ( [[ "$INTERACTIVE" =~ YES ]] || [[ "$TRAVIS" =~ true ]] ) && printf "Progress: %d/%d\r" $(( I + 1 )) $SPLIT
+  { [[ "$INTERACTIVE" =~ YES ]] || [[ "$TRAVIS" =~ true ]]; } && printf "Progress: %d/%d\r" $(( I + 1 )) $SPLIT
   SPELLFILE=spelling$I~
   ${GP}sed -i '/^#/d' $SPELLFILE
 
@@ -136,10 +136,10 @@ for I in $(seq -f '%02g' 0  $((SPLIT-1)) ) ; do
   RUN_IGNORECASE=OFF
   RUN_CASEMATCH=OFF
 
-  if [[ ! -z "${IGNORECASE}" ]]; then
+  if [[ -n "${IGNORECASE}" ]]; then
     RUN_IGNORECASE=ON
   fi
-  if [[ ! -z "${CASEMATCH}"  ]]; then
+  if [[ -n "${CASEMATCH}"  ]]; then
     RUN_CASEMATCH=ON
   fi
 
@@ -336,7 +336,7 @@ for I in $(seq -f '%02g' 0  $((SPLIT-1)) ) ; do
 
 done
 
-( [[ "$INTERACTIVE" =~ YES ]] || [[ "$TRAVIS" =~ true ]] ) && echo
+{ [[ "$INTERACTIVE" =~ YES ]] || [[ "$TRAVIS" =~ true ]]; } && echo
 
 if [[ "$ERRORFOUND" =~ YES ]]; then
   echo -e "\x1B[1msome errors have been found.\x1B[0m" >&2
diff --git a/scripts/spell_check/spell_test.sh b/scripts/spell_check/spell_test.sh
index 02400ca263..9f979d66f4 100755
--- a/scripts/spell_check/spell_test.sh
+++ b/scripts/spell_check/spell_test.sh
@@ -5,12 +5,12 @@ set -e
 echo "Spell check"
 cd $(git rev-parse --show-toplevel)
 
-if [[ ! -z  $TRAVIS_PULL_REQUEST_BRANCH  ]]; then
+if [[ -n  $TRAVIS_PULL_REQUEST_BRANCH  ]]; then
   # if on a PR, just analyze the changed files
   echo "TRAVIS PR BRANCH: $TRAVIS_PULL_REQUEST_BRANCH"
   FILES=$(git diff --diff-filter=AM --name-only $(git merge-base HEAD ${TRAVIS_BRANCH}) | tr '\n' ' ' )
   export PATH=${HOME}/osgeo4travis/bin:${PATH}
-elif [[ ! -z  $TRAVIS_COMMIT_RANGE  ]]; then
+elif [[ -n  $TRAVIS_COMMIT_RANGE  ]]; then
   echo "TRAVIS COMMIT RANGE: $TRAVIS_COMMIT_RANGE"
   FILES=$(git diff --diff-filter=AM --name-only ${TRAVIS_COMMIT_RANGE/.../..} | tr '\n' ' ' )
   export PATH=${HOME}/osgeo4travis/bin:${PATH}
@@ -19,7 +19,7 @@ else
   FILES=""
 fi
 
-if [[ ! -z $FILES ]]; then
+if [[ -n $FILES ]]; then
   DIR=$(git rev-parse --show-toplevel)/scripts/spell_check
   ${DIR}/check_spelling.sh -r $FILES
 fi
diff --git a/scripts/spell_check/test.sh b/scripts/spell_check/test.sh
index 3aaaac84b8..50e4fa6d37 100755
--- a/scripts/spell_check/test.sh
+++ b/scripts/spell_check/test.sh
@@ -85,7 +85,7 @@ ${DIR}/check_spelling.sh -r -l spelling_error.log~ spelling_error.dat~
 ${GP}sort -u -o spelling_error.log~ spelling_error.log~
 DIFF=$(diff spelling_error.log~ spelling_error.expected~)
 
-if [[ ! -z $DIFF ]]; then
+if [[ -n $DIFF ]]; then
   echo "SPELLING TEST FAILED" >&2
 else
   echo "TEST OK"
diff --git a/scripts/verify-indentation.sh b/scripts/verify-indentation.sh
index 92b07bc55e..70445ebc8f 100755
--- a/scripts/verify-indentation.sh
+++ b/scripts/verify-indentation.sh
@@ -19,11 +19,11 @@ ASTYLEDIFF=/tmp/astyle.diff
 true > $ASTYLEDIFF
 
 
-if [[ ! -z  $TRAVIS_PULL_REQUEST_BRANCH  ]]; then
+if [[ -n  $TRAVIS_PULL_REQUEST_BRANCH  ]]; then
   # if on a PR, just analyze the changed files
   echo "TRAVIS PR BRANCH: $TRAVIS_PULL_REQUEST_BRANCH"
   FILES=$(git diff --diff-filter=AM --name-only $(git merge-base HEAD ${TRAVIS_BRANCH}) | tr '\n' ' ' )
-elif [[ ! -z  $TRAVIS_COMMIT_RANGE  ]]; then
+elif [[ -n  $TRAVIS_COMMIT_RANGE  ]]; then
   echo "TRAVIS COMMIT RANGE: $TRAVIS_COMMIT_RANGE"
   FILES=$(git diff --diff-filter=AM --name-only ${TRAVIS_COMMIT_RANGE/.../..} | tr '\n' ' ' )
 fi
diff --git a/scripts/widgets_tree.py b/scripts/widgets_tree.py
index 641a5d3218..c28aabdba9 100644
--- a/scripts/widgets_tree.py
+++ b/scripts/widgets_tree.py
@@ -22,7 +22,7 @@ __author__ = 'Martin Dobias'
 __date__ = 'May 2011'
 __copyright__ = '(C) 2011, Martin Dobias'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 """
 Reads .ui files from ../src/ui/ directory and write to stdout an XML describing
diff --git a/src/analysis/processing/qgsalgorithmextractbyattribute.cpp b/src/analysis/processing/qgsalgorithmextractbyattribute.cpp
index 605c3c5139..7f08e89d6e 100644
--- a/src/analysis/processing/qgsalgorithmextractbyattribute.cpp
+++ b/src/analysis/processing/qgsalgorithmextractbyattribute.cpp
@@ -53,14 +53,14 @@ void QgsExtractByAttributeAlgorithm::initAlgorithm( const QVariantMap & )
                 << QObject::tr( "=" )
                 << QObject::tr( "≠" )
                 << QObject::tr( ">" )
-                << QObject::tr( ">=" )
+                << QObject::tr( "≥" )
                 << QObject::tr( "<" )
-                << QObject::tr( "<=" )
+                << QObject::tr( "≤" )
                 << QObject::tr( "begins with" )
                 << QObject::tr( "contains" )
                 << QObject::tr( "is null" )
                 << QObject::tr( "is not null" )
-                << QObject::tr( "does not contain" ) ) );
+                << QObject::tr( "does not contain" ), false, 0 ) );
   addParameter( new QgsProcessingParameterString( QStringLiteral( "VALUE" ), QObject::tr( "Value" ), QVariant(), false, true ) );
 
   addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Extracted (attribute)" ) ) );
diff --git a/src/analysis/processing/qgsalgorithmpackage.cpp b/src/analysis/processing/qgsalgorithmpackage.cpp
index bd191106b8..54da704392 100644
--- a/src/analysis/processing/qgsalgorithmpackage.cpp
+++ b/src/analysis/processing/qgsalgorithmpackage.cpp
@@ -171,6 +171,20 @@ bool QgsPackageAlgorithm::packageVectorLayer( QgsVectorLayer *layer, const QStri
   options.fileEncoding = context.defaultEncoding();
   options.feedback = feedback;
 
+  // remove any existing FID field, let this be completely recreated
+  // since many layer sources have fid fields which are not compatible with gpkg requirements
+  QgsFields fields = layer->fields();
+  const int fidIndex = fields.lookupField( QStringLiteral( "fid" ) );
+
+  options.attributes = fields.allAttributesList();
+  if ( fidIndex >= 0 )
+    options.attributes.removeAll( fidIndex );
+  if ( options.attributes.isEmpty() )
+  {
+    // fid was the only field
+    options.skipAttributeCreation = true;
+  }
+
   QString error;
   if ( QgsVectorFileWriter::writeAsVectorFormat( layer, path, options, &error ) != QgsVectorFileWriter::NoError )
   {
diff --git a/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp b/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp
index 731a4772ee..51f71b7a67 100644
--- a/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp
+++ b/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp
@@ -29,7 +29,7 @@ void QgsSaveSelectedFeatures::initAlgorithm( const QVariantMap & )
 {
   addParameter( new QgsProcessingParameterVectorLayer( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ),
                 QList< int >() << QgsProcessing::TypeVector ) );
-  addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Selected features" ), QgsProcessing::TypeVectorPoint ) );
+  addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Selected features" ) ) );
 }
 
 QString QgsSaveSelectedFeatures::name() const
diff --git a/src/analysis/raster/qgsrastercalclexer.ll b/src/analysis/raster/qgsrastercalclexer.ll
index 1462725e20..a54b40b2b3 100644
--- a/src/analysis/raster/qgsrastercalclexer.ll
+++ b/src/analysis/raster/qgsrastercalclexer.ll
@@ -36,6 +36,7 @@
   #ifdef _MSC_VER
   #define YY_NO_UNISTD_H
   #endif
+
 %}
 
 white       [ \t\r\n]+
@@ -80,8 +81,12 @@ raster_band_ref_quoted  \"(\\.|[^"])*\"
 {raster_band_ref_quoted} { return RASTER_BAND_REF; }
 
 {white}    /* skip blanks and tabs */
+
+[a-z][a-z0-9_]* { return yytext[0]; } /* other unknown tokens */
+
 %%
 
+
 void set_raster_input_buffer(const char* buffer)
 {
   raster_scan_string(buffer);
diff --git a/src/analysis/raster/qgsrastercalculator.cpp b/src/analysis/raster/qgsrastercalculator.cpp
index a61bb1e324..0d9e62c347 100644
--- a/src/analysis/raster/qgsrastercalculator.cpp
+++ b/src/analysis/raster/qgsrastercalculator.cpp
@@ -137,8 +137,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback
     //read / write line by line
     QMap<QString, QgsRasterBlock * > _rasterData;
     // Cast to float
-    std::vector<float> castedResult;
-    castedResult.reserve( static_cast<size_t>( mNumOutputColumns ) );
+    std::vector<float> castedResult( static_cast<size_t>( mNumOutputColumns ), 0 );
     auto rowHeight = mOutputRectangle.height() / mNumOutputRows;
     for ( size_t row = 0; row < static_cast<size_t>( mNumOutputRows ); ++row )
     {
@@ -186,11 +185,7 @@ QgsRasterCalculator::Result QgsRasterCalculator::processCalculation( QgsFeedback
 
       if ( calcNode->calculate( _rasterData, resultMatrix, 0 ) )
       {
-        // write scanline to the dataset
-        for ( size_t i = 0; i < static_cast<size_t>( mNumOutputColumns ); i++ )
-        {
-          castedResult[i] = static_cast<float>( resultMatrix.data()[i] );
-        }
+        std::copy( resultMatrix.data(), resultMatrix.data() + mNumOutputColumns, castedResult.begin() );
         if ( GDALRasterIO( outputRasterBand, GF_Write, 0, row, mNumOutputColumns, 1, castedResult.data(), mNumOutputColumns, 1, GDT_Float32, 0, 0 ) != CE_None )
         {
           QgsDebugMsg( QStringLiteral( "RasterIO error!" ) );
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index d323099baf..3ad85d01c5 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -654,6 +654,7 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}/src/core/mesh
   ${CMAKE_SOURCE_DIR}/src/core/layertree
   ${CMAKE_SOURCE_DIR}/src/core/locator
+  ${CMAKE_SOURCE_DIR}/src/core/pal
   ${CMAKE_SOURCE_DIR}/src/core/providers/memory
   ${CMAKE_SOURCE_DIR}/src/core/raster
   ${CMAKE_SOURCE_DIR}/src/core/scalebar
diff --git a/src/app/layout/qgslayoutatlaswidget.cpp b/src/app/layout/qgslayoutatlaswidget.cpp
index c2ae5fd893..8cff46bd40 100644
--- a/src/app/layout/qgslayoutatlaswidget.cpp
+++ b/src/app/layout/qgslayoutatlaswidget.cpp
@@ -63,7 +63,7 @@ QgsLayoutAtlasWidget::QgsLayoutAtlasWidget( QWidget *parent, QgsPrintLayout *lay
   {
     mAtlasFileFormat->addItem( QString( formats.at( i ) ) );
   }
-  connect( mAtlasFileFormat, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, [ = ]( int ) { changeFileFormat(); } );
+  connect( mAtlasFileFormat, qgis::overload<int>::of( &QComboBox::currentIndexChanged ), this, [ = ]( int ) { changeFileFormat(); } );
 
   updateGuiElements();
 }
diff --git a/src/app/layout/qgslayoutdesignerdialog.cpp b/src/app/layout/qgslayoutdesignerdialog.cpp
index f1c586bd0a..f09d1971ad 100644
--- a/src/app/layout/qgslayoutdesignerdialog.cpp
+++ b/src/app/layout/qgslayoutdesignerdialog.cpp
@@ -935,7 +935,11 @@ void QgsLayoutDesignerDialog::setMasterLayout( QgsMasterLayoutInterface *layout
 
   QObject *obj = dynamic_cast< QObject * >( mMasterLayout );
   if ( obj )
-    connect( obj, &QObject::destroyed, this, &QgsLayoutDesignerDialog::close );
+    connect( obj, &QObject::destroyed, this, [ = ]
+  {
+    this->close();
+    QgsApplication::sendPostedEvents( nullptr, QEvent::DeferredDelete );
+  } );
 
   setTitle( mMasterLayout->name() );
 
diff --git a/src/app/layout/qgslayoutlabelwidget.cpp b/src/app/layout/qgslayoutlabelwidget.cpp
index 7c11a52032..af1008f2c9 100644
--- a/src/app/layout/qgslayoutlabelwidget.cpp
+++ b/src/app/layout/qgslayoutlabelwidget.cpp
@@ -54,6 +54,7 @@ QgsLayoutLabelWidget::QgsLayoutLabelWidget( QgsLayoutItemLabel *label )
 
   mFontColorButton->setColorDialogTitle( tr( "Select Font Color" ) );
   mFontColorButton->setContext( QStringLiteral( "composer" ) );
+  mFontColorButton->setAllowOpacity( true );
 
   mMarginXDoubleSpinBox->setClearValue( 0.0 );
   mMarginYDoubleSpinBox->setClearValue( 0.0 );
diff --git a/src/app/layout/qgslayoutmanagerdialog.cpp b/src/app/layout/qgslayoutmanagerdialog.cpp
index 48a7e5636a..484c17288c 100644
--- a/src/app/layout/qgslayoutmanagerdialog.cpp
+++ b/src/app/layout/qgslayoutmanagerdialog.cpp
@@ -94,12 +94,15 @@ QgsLayoutManagerDialog::QgsLayoutManagerDialog( QWidget *parent, Qt::WindowFlags
 
   mUserTemplatesDir = QgsApplication::qgisSettingsDirPath() + "/composer_templates";
   QMap<QString, QString> userTemplateMap = defaultTemplates( true );
-  this->addTemplates( userTemplateMap );
+  addTemplates( userTemplateMap );
 
+  // TODO QGIS 4: Remove this, default templates should not be shipped in the application folder
   mDefaultTemplatesDir = QgsApplication::pkgDataPath() + "/composer_templates";
   QMap<QString, QString> defaultTemplateMap = defaultTemplates( false );
-  this->addTemplates( defaultTemplateMap );
-  this->addTemplates( this->otherTemplates() );
+  addTemplates( defaultTemplateMap );
+  addTemplates( otherTemplates() );
+
+  mTemplatesDefaultDirBtn->setToolTip( tr( "Use <i>Settings --> Options --> Layouts --> Layout Paths</i> to configure the folders in which QGIS will search for print layout templates." ) );
 
   toggleButtons();
 }
@@ -148,6 +151,7 @@ void QgsLayoutManagerDialog::addTemplates( const QMap<QString, QString> &templat
 
 void QgsLayoutManagerDialog::activate()
 {
+  updateTemplateButtonEnabledState();
   raise();
   setWindowState( windowState() & ~Qt::WindowMinimized );
   activateWindow();
@@ -186,13 +190,12 @@ QMap<QString, QString> QgsLayoutManagerDialog::templatesFromPath( const QString
     return templateMap;
   }
 
-  QFileInfoList fileInfoList = templateDir.entryInfoList( QDir::Files );
-  QFileInfoList::const_iterator infoIt = fileInfoList.constBegin();
-  for ( ; infoIt != fileInfoList.constEnd(); ++infoIt )
+  const QFileInfoList fileInfoList = templateDir.entryInfoList( QDir::Files );
+  for ( const QFileInfo &info : fileInfoList )
   {
-    if ( infoIt->suffix().compare( QLatin1String( "qpt" ), Qt::CaseInsensitive ) == 0 )
+    if ( info.suffix().compare( QLatin1String( "qpt" ), Qt::CaseInsensitive ) == 0 )
     {
-      templateMap.insert( infoIt->baseName(), infoIt->absoluteFilePath() );
+      templateMap.insert( info.baseName(), info.absoluteFilePath() );
     }
   }
   return templateMap;
@@ -285,7 +288,14 @@ void QgsLayoutManagerDialog::mTemplate_currentIndexChanged( int indx )
 
 void QgsLayoutManagerDialog::mTemplatesDefaultDirBtn_pressed()
 {
-  openLocalDirectory( mDefaultTemplatesDir );
+  if ( QDir( mDefaultTemplatesDir ).exists() )
+    openLocalDirectory( mDefaultTemplatesDir );
+  else
+  {
+    const QStringList paths = QgsApplication::layoutTemplatePaths();
+    if ( !paths.empty() )
+      openLocalDirectory( paths.at( 0 ) );
+  }
 }
 
 void QgsLayoutManagerDialog::mTemplatesUserDirBtn_pressed()
@@ -331,6 +341,11 @@ void QgsLayoutManagerDialog::openLocalDirectory( const QString &localDirPath )
   }
 }
 
+void QgsLayoutManagerDialog::updateTemplateButtonEnabledState()
+{
+  mTemplatesDefaultDirBtn->setEnabled( QDir( mDefaultTemplatesDir ).exists() || !QgsApplication::layoutTemplatePaths().empty() );
+}
+
 #ifdef Q_OS_MAC
 void QgsLayoutManagerDialog::showEvent( QShowEvent *event )
 {
diff --git a/src/app/layout/qgslayoutmanagerdialog.h b/src/app/layout/qgslayoutmanagerdialog.h
index 4e20337aea..36e2acec2c 100644
--- a/src/app/layout/qgslayoutmanagerdialog.h
+++ b/src/app/layout/qgslayoutmanagerdialog.h
@@ -85,7 +85,7 @@ class QgsLayoutManagerDialog: public QDialog, private Ui::QgsLayoutManagerBase
 
     /**
      * Returns the default templates (key: template name, value: absolute path to template file)
-     * \param fromUser whether to return user templates from ~/.qgis/composer_templates
+     * \param fromUser whether to return user templates from [profile folder]/composer_templates
      */
     QMap<QString, QString> defaultTemplates( bool fromUser = false ) const;
     QMap<QString, QString> otherTemplates() const;
@@ -93,10 +93,12 @@ class QgsLayoutManagerDialog: public QDialog, private Ui::QgsLayoutManagerBase
     QMap<QString, QString> templatesFromPath( const QString &path ) const;
 
     /**
-     * Open local directory with user's system, creating it if not present
+     * Opens local directory with user's system and tries to create it if not present
      */
     void openLocalDirectory( const QString &localDirPath );
 
+    void updateTemplateButtonEnabledState();
+
     QString mDefaultTemplatesDir;
     QString mUserTemplatesDir;
     QPushButton *mCreateReportButton = nullptr;
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 4fbbde51bc..07ec91e637 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -108,6 +108,15 @@ typedef SInt32 SRefCon;
 #include "qgsopenclutils.h"
 #endif
 
+/**
+ * Print QGIS version
+ */
+void version( )
+{
+  const QString msg = QStringLiteral( "QGIS %1 '%2' (%3)\n" ).arg( VERSION ).arg( RELEASE_NAME ).arg( QGSVERSION );
+  std::cout << msg.toStdString();
+}
+
 /**
  * Print usage text
  */
@@ -116,11 +125,10 @@ void usage( const QString &appName )
   QStringList msg;
 
   msg
-      << QStringLiteral( "QGIS - " ) << VERSION << QStringLiteral( " '" ) << RELEASE_NAME << QStringLiteral( "' (" )
-      << QGSVERSION << QStringLiteral( ")\n" )
       << QStringLiteral( "QGIS is a user friendly Open Source Geographic Information System.\n" )
       << QStringLiteral( "Usage: " ) << appName <<  QStringLiteral( " [OPTION] [FILE]\n" )
       << QStringLiteral( "  OPTION:\n" )
+      << QStringLiteral( "\t[--version]\tdisplay version information and exit\n" )
       << QStringLiteral( "\t[--snapshot filename]\temit snapshot of loaded datasets to given file\n" )
       << QStringLiteral( "\t[--width width]\twidth of snapshot to emit\n" )
       << QStringLiteral( "\t[--height height]\theight of snapshot to emit\n" )
@@ -168,7 +176,7 @@ void usage( const QString &appName )
               "QGIS command line options",
               MB_OK );
 #else
-  std::cerr << msg.join( QString() ).toLocal8Bit().constData();
+  std::cout << msg.join( QString() ).toLocal8Bit().constData();
 #endif
 
 } // usage()
@@ -600,7 +608,12 @@ int main( int argc, char *argv[] )
         if ( arg == QLatin1String( "--help" ) || arg == QLatin1String( "-?" ) )
         {
           usage( args[0] );
-          return 2;
+          return EXIT_SUCCESS;
+        }
+        else if ( arg == QLatin1String( "--version" ) || arg == QLatin1String( "-v" ) )
+        {
+          version();
+          return EXIT_SUCCESS;
         }
         else if ( arg == QLatin1String( "--nologo" ) || arg == QLatin1String( "-n" ) )
         {
@@ -997,6 +1010,10 @@ int main( int argc, char *argv[] )
       if ( !settingsMigrationForce && showWelcome )
       {
         QgsFirstRunDialog dlg;
+        if ( ! QFile::exists( QSettings( "QGIS", "QGIS2" ).fileName() ) )
+        {
+          dlg.hideMigration();
+        }
         dlg.exec();
         runMigration = dlg.migrateSettings();
         migSettings.setValue( QStringLiteral( "migration/firstRunVersionFlag" ), Qgis::QGIS_VERSION_INT );
diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp
index 766f6cabe6..aa558ab613 100644
--- a/src/app/qgisapp.cpp
+++ b/src/app/qgisapp.cpp
@@ -2165,7 +2165,7 @@ void QgisApp::createActions()
   connect( mActionZoomActualSize, &QAction::triggered, this, &QgisApp::zoomActualSize );
   connect( mActionMapTips, &QAction::toggled, this, &QgisApp::toggleMapTips );
   connect( mActionNewBookmark, &QAction::triggered, this, &QgisApp::newBookmark );
-  connect( mActionDraw, &QAction::triggered, this, &QgisApp::refreshMapCanvas );
+  connect( mActionDraw, &QAction::triggered, this, [this] { refreshMapCanvas( true ); } );
   connect( mActionTextAnnotation, &QAction::triggered, this, &QgisApp::addTextAnnotation );
   connect( mActionFormAnnotation, &QAction::triggered, this, &QgisApp::addFormAnnotation );
   connect( mActionHtmlAnnotation, &QAction::triggered, this, &QgisApp::addHtmlAnnotation );
@@ -3048,6 +3048,7 @@ void QgisApp::createStatusBar()
   statusBar()->setFont( statusBarFont );
 
   mStatusBar = new QgsStatusBar();
+  mStatusBar->setParentStatusBar( QMainWindow::statusBar() );
   mStatusBar->setFont( statusBarFont );
 
   statusBar()->addPermanentWidget( mStatusBar, 10 );
@@ -4596,13 +4597,21 @@ static void setupVectorLayer( const QString &vectorLayerPath,
   }
 }
 
+
 bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType )
+{
+  return addVectorLayersPrivate( layerQStringList, enc, dataSourceType );
+}
+
+bool QgisApp::addVectorLayersPrivate( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType, const bool guiWarning )
 {
   bool wasfrozen = mMapCanvas->isFrozen();
-  QList<QgsMapLayer *> myList;
+  QList<QgsMapLayer *> layersToAdd;
+  QList<QgsMapLayer *> addedLayers;
   QgsSettings settings;
+  bool userAskedToAddLayers = false;
 
-  Q_FOREACH ( QString src, layerQStringList )
+  for ( QString src : layerQStringList )
   {
     src = src.trimmed();
     QString baseName;
@@ -4672,6 +4681,7 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
 
     if ( layer->isValid() )
     {
+      userAskedToAddLayers = true;
       layer->setProviderEncoding( enc );
 
       QStringList sublayers = layer->dataProvider()->subLayers();
@@ -4681,7 +4691,7 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
       // sublayers selection dialog so the user can select the sublayers to actually load.
       if ( sublayers.count() > 1 )
       {
-        askUserForOGRSublayers( layer );
+        addedLayers.append( askUserForOGRSublayers( layer ) );
 
         // The first layer loaded is not useful in that case. The user can select it in
         // the list if he wants to load it.
@@ -4693,12 +4703,15 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
         setupVectorLayer( src, sublayers, layer,
                           QStringLiteral( "ogr" ), options );
 
-        myList << layer;
+        layersToAdd << layer;
       }
       else
       {
-        QString msg = tr( "%1 doesn't have any layers." ).arg( src );
-        visibleMessageBar()->pushMessage( tr( "Invalid Data Source" ), msg, Qgis::Critical, messageTimeout() );
+        if ( guiWarning )
+        {
+          QString msg = tr( "%1 doesn't have any layers." ).arg( src );
+          visibleMessageBar()->pushMessage( tr( "Invalid Data Source" ), msg, Qgis::Critical, messageTimeout() );
+        }
         delete layer;
       }
     }
@@ -4712,9 +4725,9 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
            QMessageBox::question( this, tr( "Invalid Data Source" ),
                                   tr( "Download with \"Protocol\" source type has failed, do you want to try the \"File\" source type?" ) ) == QMessageBox::Yes )
       {
-        return addVectorLayers( QStringList() << src.replace( QLatin1String( "/vsicurl/" ), " " ), enc, dataSourceType );
+        return addVectorLayersPrivate( QStringList() << src.replace( QLatin1String( "/vsicurl/" ), " " ), enc, dataSourceType, guiWarning );
       }
-      else
+      else if ( guiWarning )
       {
         visibleMessageBar()->pushMessage( tr( "Invalid Data Source" ), msg, Qgis::Critical, messageTimeout() );
       }
@@ -4722,14 +4735,16 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
   }
 
   // make sure at least one layer was successfully added
-  if ( myList.isEmpty() )
+  if ( layersToAdd.isEmpty() )
   {
-    return false;
+    // we also return true if we asked the user for sublayers, but they choose none. In this case nothing
+    // went wrong, so we shouldn't return false and cause GUI warnings to appear
+    return userAskedToAddLayers || !addedLayers.isEmpty();
   }
 
   // Register this layer with the layers registry
-  QgsProject::instance()->addMapLayers( myList );
-  Q_FOREACH ( QgsMapLayer *l, myList )
+  QgsProject::instance()->addMapLayers( layersToAdd );
+  for ( QgsMapLayer *l : qgis::as_const( layersToAdd ) )
   {
     bool ok;
     l->loadDefaultStyle( ok );
@@ -4744,16 +4759,17 @@ bool QgisApp::addVectorLayers( const QStringList &layerQStringList, const QStrin
     freezeCanvases( false );
     refreshMapCanvas();
   }
-// Let render() do its own cursor management
-//  QApplication::restoreOverrideCursor();
-
-  // statusBar()->showMessage( mMapCanvas->extent().toString( 2 ) );
 
   return true;
-} // QgisApp::addVectorLayer()
+}
 
 
 QgsMeshLayer *QgisApp::addMeshLayer( const QString &url, const QString &baseName, const QString &providerKey )
+{
+  return addMeshLayerPrivate( url, baseName, providerKey );
+}
+
+QgsMeshLayer *QgisApp::addMeshLayerPrivate( const QString &url, const QString &baseName, const QString &providerKey, const bool guiWarning )
 {
   bool wasfrozen = mMapCanvas->isFrozen();
   QgsSettings settings;
@@ -4773,8 +4789,11 @@ QgsMeshLayer *QgisApp::addMeshLayer( const QString &url, const QString &baseName
 
   if ( ! layer || !layer->isValid() )
   {
-    QString msg = tr( "%1 is not a valid or recognized data source." ).arg( url );
-    visibleMessageBar()->pushMessage( tr( "Invalid Data Source" ), msg, Qgis::Critical, messageTimeout() );
+    if ( guiWarning )
+    {
+      QString msg = tr( "%1 is not a valid or recognized data source." ).arg( url );
+      visibleMessageBar()->pushMessage( tr( "Invalid Data Source" ), msg, Qgis::Critical, messageTimeout() );
+    }
 
     // since the layer is bad, stomp on it
     return nullptr;
@@ -4798,7 +4817,7 @@ QgsMeshLayer *QgisApp::addMeshLayer( const QString &url, const QString &baseName
     refreshMapCanvas();
   }
   return layer.release();
-} // QgisApp::addMeshLayer()
+}
 
 // present a dialog to choose zipitem layers
 bool QgisApp::askUserForZipItemLayers( const QString &path )
@@ -4913,23 +4932,24 @@ bool QgisApp::askUserForZipItemLayers( const QString &path )
 }
 
 // present a dialog to choose GDAL raster sublayers
-void QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )
+QList< QgsMapLayer * > QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )
 {
+  QList< QgsMapLayer * > result;
   if ( !layer )
-    return;
+    return result;
 
   QStringList sublayers = layer->subLayers();
   QgsDebugMsg( QStringLiteral( "raster has %1 sublayers" ).arg( layer->subLayers().size() ) );
 
   if ( sublayers.empty() )
-    return;
+    return result;
 
   // if promptLayers=Load all, load all sublayers without prompting
   QgsSettings settings;
   if ( settings.value( QStringLiteral( "qgis/promptForRasterSublayers" ), 1 ).toInt() == 3 )
   {
-    loadGDALSublayers( layer->source(), sublayers );
-    return;
+    result.append( loadGDALSublayers( layer->source(), sublayers ) );
+    return result;
   }
 
   // We initialize a selection dialog and display it.
@@ -4950,7 +4970,17 @@ void QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )
     // for hdf4 it would be best to get description, because the subdataset_index is not very practical
     if ( name.startsWith( QLatin1String( "netcdf" ), Qt::CaseInsensitive ) ||
          name.startsWith( QLatin1String( "hdf" ), Qt::CaseInsensitive ) )
+    {
       name = name.mid( name.indexOf( path ) + path.length() + 1 );
+    }
+    else if ( name.startsWith( QLatin1String( "GPKG" ), Qt::CaseInsensitive ) )
+    {
+      const auto parts { name.split( ':' ) };
+      if ( parts.count() >= 3 )
+      {
+        name = parts.at( parts.count( ) - 1 );
+      }
+    }
     else
     {
       // remove driver name and file name
@@ -5020,6 +5050,7 @@ void QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )
         {
           addRasterLayer( rlayer );
         }
+        result << rlayer;
       }
     }
 
@@ -5027,6 +5058,7 @@ void QgisApp::askUserForGDALSublayers( QgsRasterLayer *layer )
     if ( addToGroup && ! newLayersVisible )
       group->setItemVisibilityCheckedRecursive( newLayersVisible );
   }
+  return result;
 }
 
 // should the GDAL sublayers dialog should be presented to the user?
@@ -5048,8 +5080,9 @@ bool QgisApp::shouldAskUserForGDALSublayers( QgsRasterLayer *layer )
 
 // This method will load with GDAL the layers in parameter.
 // It is normally triggered by the sublayer selection dialog.
-void QgisApp::loadGDALSublayers( const QString &uri, const QStringList &list )
+QList< QgsMapLayer * > QgisApp::loadGDALSublayers( const QString &uri, const QStringList &list )
 {
+  QList< QgsMapLayer * > result;
   QString path, name;
   QgsRasterLayer *subLayer = nullptr;
   QgsSettings settings;
@@ -5069,6 +5102,7 @@ void QgisApp::loadGDALSublayers( const QString &uri, const QStringList &list )
     if ( subLayer )
     {
       if ( subLayer->isValid() )
+      {
         if ( addToGroup )
         {
           QgsProject::instance()->addMapLayer( subLayer, false );
@@ -5078,22 +5112,26 @@ void QgisApp::loadGDALSublayers( const QString &uri, const QStringList &list )
         {
           addRasterLayer( subLayer );
         }
+        result << subLayer;
+      }
       else
         delete subLayer;
     }
 
   }
+  return result;
 }
 
 // This method is the method that does the real job. If the layer given in
 // parameter is nullptr, then the method tries to act on the activeLayer.
-void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
+QList<QgsMapLayer *> QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
 {
+  QList<QgsMapLayer *> result;
   if ( !layer )
   {
     layer = qobject_cast<QgsVectorLayer *>( activeLayer() );
     if ( !layer || layer->dataProvider()->name() != QLatin1String( "ogr" ) )
-      return;
+      return result;
   }
 
   QStringList sublayers = layer->dataProvider()->subLayers();
@@ -5138,7 +5176,7 @@ void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
   chooseSublayersDialog.populateLayerTable( list );
 
   if ( !chooseSublayersDialog.exec() )
-    return;
+    return result;
 
   QString name = layer->name();
 
@@ -5149,7 +5187,6 @@ void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
   // The uri must contain the actual uri of the vectorLayer from which we are
   // going to load the sublayers.
   QString fileName = QFileInfo( uri ).baseName();
-  QList<QgsMapLayer *> myList;
   Q_FOREACH ( const QgsSublayersDialog::LayerDefinition &def, chooseSublayersDialog.selection() )
   {
     QString layerGeometryType = def.type;
@@ -5176,7 +5213,7 @@ void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
     QgsVectorLayer *layer = new QgsVectorLayer( composedURI, name, QStringLiteral( "ogr" ), options );
     if ( layer && layer->isValid() )
     {
-      myList << layer;
+      result << layer;
     }
     else
     {
@@ -5186,7 +5223,7 @@ void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
     }
   }
 
-  if ( ! myList.isEmpty() )
+  if ( !result.isEmpty() )
   {
     QgsSettings settings;
     bool addToGroup = settings.value( QStringLiteral( "/qgis/openSublayersInGroup" ), true ).toBool();
@@ -5195,8 +5232,8 @@ void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
     if ( addToGroup )
       group = QgsProject::instance()->layerTreeRoot()->insertGroup( 0, name );
 
-    QgsProject::instance()->addMapLayers( myList, ! addToGroup );
-    Q_FOREACH ( QgsMapLayer *l, myList )
+    QgsProject::instance()->addMapLayers( result, ! addToGroup );
+    for ( QgsMapLayer *l : qgis::as_const( result ) )
     {
       bool ok;
       l->loadDefaultStyle( ok );
@@ -5209,6 +5246,7 @@ void QgisApp::askUserForOGRSublayers( QgsVectorLayer *layer )
     if ( addToGroup && ! newLayersVisible )
       group->setItemVisibilityCheckedRecursive( newLayersVisible );
   }
+  return result;
 }
 
 void QgisApp::addDatabaseLayers( QStringList const &layerPathList, QString const &providerKey )
@@ -5298,12 +5336,12 @@ void QgisApp::addVirtualLayer()
            this, SLOT( replaceSelectedVectorLayer( QString, QString, QString, QString ) ) );
   dts->exec();
   delete dts;
-} // QgisApp::addVirtualLayer()
+}
 
 void QgisApp::addSelectedVectorLayer( const QString &uri, const QString &layerName, const QString &provider )
 {
   addVectorLayer( uri, layerName, provider );
-} // QgisApp:addSelectedVectorLayer
+}
 
 void QgisApp::replaceSelectedVectorLayer( const QString &oldId, const QString &uri, const QString &layerName, const QString &provider )
 {
@@ -5436,8 +5474,7 @@ bool QgisApp::fileNew( bool promptToSaveFlag, bool forceBlank )
   mScaleWidget->updateScales();
 
   // set project CRS
-  QString defCrs = settings.value( QStringLiteral( "Projections/projectDefaultCrs" ), GEO_EPSG_CRS_AUTHID ).toString();
-  QgsCoordinateReferenceSystem srs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( defCrs );
+  const QgsCoordinateReferenceSystem srs = QgsCoordinateReferenceSystem( settings.value( QStringLiteral( "/projections/defaultProjectCrs" ), GEO_EPSG_CRS_AUTHID, QgsSettings::App ).toString() );
   // write the projections _proj string_ to project settings
   prj->setCrs( srs );
   prj->setEllipsoid( srs.ellipsoidAcronym() );
@@ -6356,24 +6393,17 @@ bool QgisApp::openLayer( const QString &fileName, bool allowInteractive )
     else
       ok  = addRasterLayer( fileName, fileInfo.completeBaseName() );
   }
-  // TODO - should we really call isValidRasterFileName() before addRasterLayer()
-  //        this results in 2 calls to GDALOpen()
-  // I think (Radim) that it is better to test only first if valid,
-  // addRasterLayer() is really trying to add layer and gives error if fails
-  //
-  // if ( addRasterLayer( fileName, fileInfo.completeBaseName() ) )
-  // {
-  //   ok  = true );
-  // }
-  else // nope - try to load it as a shape/ogr
+
+  // try as a vector
+  if ( !ok || fileName.endsWith( QLatin1String( ".gpkg" ), Qt::CaseInsensitive ) )
   {
     if ( allowInteractive )
     {
-      ok = addVectorLayers( QStringList( fileName ), QStringLiteral( "System" ), QStringLiteral( "file" ) );
+      ok = addVectorLayersPrivate( QStringList( fileName ), QStringLiteral( "System" ), QStringLiteral( "file" ), false );
     }
     else
     {
-      ok = addVectorLayer( fileName, fileInfo.completeBaseName(), QStringLiteral( "ogr" ) );
+      ok = addVectorLayerPrivate( fileName, fileInfo.completeBaseName(), QStringLiteral( "ogr" ), false );
     }
   }
 
@@ -6382,13 +6412,16 @@ bool QgisApp::openLayer( const QString &fileName, bool allowInteractive )
   // Try to load as mesh layer after raster & vector
   if ( !ok )
   {
-    ok = addMeshLayer( fileName, fileInfo.completeBaseName(), "mdal" );
+    ok = static_cast< bool >( addMeshLayerPrivate( fileName, fileInfo.completeBaseName(), QStringLiteral( "mdal" ), false ) );
   }
 
   if ( !ok )
   {
     // we have no idea what this file is...
     QgsMessageLog::logMessage( tr( "Unable to load %1" ).arg( fileName ) );
+
+    const QString msg = tr( "%1 is not a valid or recognized data source." ).arg( fileName );
+    visibleMessageBar()->pushMessage( tr( "Invalid Data Source" ), msg, Qgis::Critical, messageTimeout() );
   }
 
   return ok;
@@ -9159,13 +9192,16 @@ void QgisApp::copyFeatures( QgsFeatureStore &featureStore )
   clipboard()->replaceWithCopyOf( featureStore );
 }
 
-void QgisApp::refreshMapCanvas()
+void QgisApp::refreshMapCanvas( bool redrawAllLayers )
 {
   Q_FOREACH ( QgsMapCanvas *canvas, mapCanvases() )
   {
     //stop any current rendering
     canvas->stopRendering();
-    canvas->refreshAllLayers();
+    if ( redrawAllLayers )
+      canvas->refreshAllLayers();
+    else
+      canvas->refresh();
   }
 }
 
@@ -10833,6 +10869,11 @@ void QgisApp::showLayoutManager()
 }
 
 QgsVectorLayer *QgisApp::addVectorLayer( const QString &vectorLayerPath, const QString &name, const QString &providerKey )
+{
+  return addVectorLayerPrivate( vectorLayerPath, name, providerKey );
+}
+
+QgsVectorLayer *QgisApp::addVectorLayerPrivate( const QString &vectorLayerPath, const QString &name, const QString &providerKey, const bool guiWarning )
 {
   bool wasfrozen = mMapCanvas->isFrozen();
   QgsSettings settings;
@@ -10878,12 +10919,12 @@ QgsVectorLayer *QgisApp::addVectorLayer( const QString &vectorLayerPath, const Q
          ! vectorLayerPath.contains( QStringLiteral( "layerid=" ) ) &&
          ! vectorLayerPath.contains( QStringLiteral( "layername=" ) ) )
     {
-      askUserForOGRSublayers( layer );
+      QList< QgsMapLayer * > addedLayers = askUserForOGRSublayers( layer );
 
       // The first layer loaded is not useful in that case. The user can select it in
       // the list if he wants to load it.
       delete layer;
-      layer = nullptr;
+      layer = addedLayers.isEmpty() ? nullptr : qobject_cast< QgsVectorLayer * >( addedLayers.at( 0 ) );
     }
     else
     {
@@ -10907,9 +10948,12 @@ QgsVectorLayer *QgisApp::addVectorLayer( const QString &vectorLayerPath, const Q
   }
   else
   {
-    QString message = layer->dataProvider()->error().message( QgsErrorMessage::Text );
-    QString msg = tr( "The layer %1 is not a valid layer and can not be added to the map. Reason: %2" ).arg( vectorLayerPath, message );
-    visibleMessageBar()->pushMessage( tr( "Layer is not valid" ), msg, Qgis::Critical, messageTimeout() );
+    if ( guiWarning )
+    {
+      QString message = layer->dataProvider()->error().message( QgsErrorMessage::Text );
+      QString msg = tr( "The layer %1 is not a valid layer and can not be added to the map. Reason: %2" ).arg( vectorLayerPath, message );
+      visibleMessageBar()->pushMessage( tr( "Layer is not valid" ), msg, Qgis::Critical, messageTimeout() );
+    }
 
     delete layer;
     freezeCanvases( false );
@@ -10929,9 +10973,7 @@ QgsVectorLayer *QgisApp::addVectorLayer( const QString &vectorLayerPath, const Q
 
   return layer;
 
-} // QgisApp::addVectorLayer
-
-
+}
 
 void QgisApp::addMapLayer( QgsMapLayer *mapLayer )
 {
@@ -12102,7 +12144,7 @@ void QgisApp::layersWereAdded( const QList<QgsMapLayer *> &layers )
     if ( provider )
     {
       connect( provider, &QgsDataProvider::dataChanged, layer, [layer] { layer->triggerRepaint(); } );
-      connect( provider, &QgsDataProvider::dataChanged, this, &QgisApp::refreshMapCanvas );
+      connect( provider, &QgsDataProvider::dataChanged, this, [this] { refreshMapCanvas(); } );
     }
   }
 }
@@ -12933,13 +12975,13 @@ QgsRasterLayer *QgisApp::addRasterLayerPrivate(
 
     if ( shouldAskUserForGDALSublayers( layer ) )
     {
-      askUserForGDALSublayers( layer );
+      QList< QgsMapLayer * > subLayers = askUserForGDALSublayers( layer );
       ok = true;
 
       // The first layer loaded is not useful in that case. The user can select it in
       // the list if he wants to load it.
       delete layer;
-      layer = nullptr;
+      layer = !subLayers.isEmpty() ? qobject_cast< QgsRasterLayer * >( subLayers.at( 0 ) ) : nullptr;
     }
   }
   else
diff --git a/src/app/qgisapp.h b/src/app/qgisapp.h
index 2bd79a86e8..8eb1c4e60e 100644
--- a/src/app/qgisapp.h
+++ b/src/app/qgisapp.h
@@ -173,6 +173,7 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
 {
     Q_OBJECT
   public:
+
     //! Constructor
     QgisApp( QSplashScreen *splash, bool restorePlugins = true,
              bool skipVersionCheck = false, const QString &rootProfileLocation = QString(),
@@ -857,7 +858,7 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
 
     //! copies features to internal clipboard
     void copyFeatures( QgsFeatureStore &featureStore );
-    void loadGDALSublayers( const QString &uri, const QStringList &list );
+    QList<QgsMapLayer *> loadGDALSublayers( const QString &uri, const QStringList &list );
 
     //! Deletes the selected attributes for the currently selected vector layer
     void deleteSelected( QgsMapLayer *layer = nullptr, QWidget *parent = nullptr, bool checkFeaturesVisible = false );
@@ -1441,7 +1442,7 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
     void selectByForm();
 
     //! refresh map canvas
-    void refreshMapCanvas();
+    void refreshMapCanvas( bool redrawAllLayers = false );
 
     //! start "busy" progress bar
     void canvasRefreshStarted();
@@ -1753,9 +1754,10 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
     bool askUserForZipItemLayers( const QString &path );
 
     /**
-     * This method will open a dialog so the user can select GDAL sublayers to load
+     * This method will open a dialog so the user can select GDAL sublayers to load,
+     * and then returns a list of these layers.
      */
-    void askUserForGDALSublayers( QgsRasterLayer *layer );
+    QList< QgsMapLayer * > askUserForGDALSublayers( QgsRasterLayer *layer );
 
     /**
      * This method will verify if a GDAL layer contains sublayers
@@ -1763,9 +1765,10 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
     bool shouldAskUserForGDALSublayers( QgsRasterLayer *layer );
 
     /**
-     * This method will open a dialog so the user can select OGR sublayers to load
+     * This method will open a dialog so the user can select OGR sublayers to load,
+     * and then returns a list of these layers.
      */
-    void askUserForOGRSublayers( QgsVectorLayer *layer );
+    QList< QgsMapLayer * > askUserForOGRSublayers( QgsVectorLayer *layer );
 
     /**
      * Add a raster layer to the map (passed in as a ptr).
@@ -1778,6 +1781,14 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
                                            const QString &providerKey, bool guiWarning,
                                            bool guiUpdate );
 
+    //! Open a mesh layer - this is the generic function which takes all parameters
+    QgsMeshLayer *addMeshLayerPrivate( const QString &uri, const QString &baseName,
+                                       const QString &providerKey, bool guiWarning = true );
+
+    bool addVectorLayersPrivate( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType, bool guiWarning = true );
+    QgsVectorLayer *addVectorLayerPrivate( const QString &vectorLayerPath, const QString &baseName, const QString &providerKey, bool guiWarning = true );
+
+
     /**
      * Add the current project to the recently opened/saved projects list
      *  pass settings by reference since creating more than one
diff --git a/src/app/qgsattributetabledialog.cpp b/src/app/qgsattributetabledialog.cpp
index e6c74149b5..e3b2b3df7f 100644
--- a/src/app/qgsattributetabledialog.cpp
+++ b/src/app/qgsattributetabledialog.cpp
@@ -148,12 +148,11 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *layer, QgsAttr
   // Initialize the window geometry
   restoreGeometry( settings.value( QStringLiteral( "Windows/BetterAttributeTable/geometry" ) ).toByteArray() );
 
-  myDa = new QgsDistanceArea();
+  QgsDistanceArea da;
+  da.setSourceCrs( mLayer->crs(), QgsProject::instance()->transformContext() );
+  da.setEllipsoid( QgsProject::instance()->ellipsoid() );
+  mEditorContext.setDistanceArea( da );
 
-  myDa->setSourceCrs( mLayer->crs(), QgsProject::instance()->transformContext() );
-  myDa->setEllipsoid( QgsProject::instance()->ellipsoid() );
-
-  mEditorContext.setDistanceArea( *myDa );
   mEditorContext.setVectorLayerTools( QgisApp::instance()->vectorLayerTools() );
   mEditorContext.setMapCanvas( QgisApp::instance()->mapCanvas() );
 
@@ -362,11 +361,6 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *layer, QgsAttr
   }
 }
 
-QgsAttributeTableDialog::~QgsAttributeTableDialog()
-{
-  delete myDa;
-}
-
 void QgsAttributeTableDialog::updateTitle()
 {
   if ( ! mLayer )
@@ -511,7 +505,10 @@ void QgsAttributeTableDialog::runFieldCalculation( QgsVectorLayer *layer, const
   QString error;
 
   QgsExpression exp( expression );
-  exp.setGeomCalculator( myDa );
+  QgsDistanceArea da;
+  da.setSourceCrs( mLayer->crs(), QgsProject::instance()->transformContext() );
+  da.setEllipsoid( QgsProject::instance()->ellipsoid() );
+  exp.setGeomCalculator( &da );
   exp.setDistanceUnits( QgsProject::instance()->distanceUnits() );
   exp.setAreaUnits( QgsProject::instance()->areaUnits() );
   bool useGeometry = exp.needsGeometry();
diff --git a/src/app/qgsattributetabledialog.h b/src/app/qgsattributetabledialog.h
index 9f9ff9656b..72f94d57ac 100644
--- a/src/app/qgsattributetabledialog.h
+++ b/src/app/qgsattributetabledialog.h
@@ -53,8 +53,6 @@ class APP_EXPORT QgsAttributeTableDialog : public QDialog, private Ui::QgsAttrib
      */
     QgsAttributeTableDialog( QgsVectorLayer *layer, QgsAttributeTableFilterModel::FilterMode initialMode = QgsAttributeTableFilterModel::ShowAll, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::Window );
 
-    ~QgsAttributeTableDialog() override;
-
     QgsExpressionContext createExpressionContext() const override;
 
   public slots:
@@ -229,8 +227,6 @@ class APP_EXPORT QgsAttributeTableDialog : public QDialog, private Ui::QgsAttrib
 
     QgsDockWidget *mDock = nullptr;
     QDialog *mDialog = nullptr;
-    QgsDistanceArea *myDa = nullptr;
-
 
     QMenu *mFilterColumnsMenu = nullptr;
     QSignalMapper *mFilterActionMapper = nullptr;
diff --git a/src/app/qgsfirstrundialog.cpp b/src/app/qgsfirstrundialog.cpp
index d39e13774a..dd63edec75 100644
--- a/src/app/qgsfirstrundialog.cpp
+++ b/src/app/qgsfirstrundialog.cpp
@@ -31,3 +31,8 @@ bool QgsFirstRunDialog::migrateSettings()
 {
   return ( mImportSettingsYes->isChecked() );
 }
+
+void QgsFirstRunDialog::hideMigration()
+{
+  mMigrationWidget->hide();
+}
diff --git a/src/app/qgsfirstrundialog.h b/src/app/qgsfirstrundialog.h
index 38f438f2d9..241f8bbc06 100644
--- a/src/app/qgsfirstrundialog.h
+++ b/src/app/qgsfirstrundialog.h
@@ -30,6 +30,12 @@ class APP_EXPORT QgsFirstRunDialog : public QDialog, private Ui::QgsFirstRunDial
 
     bool migrateSettings();
 
+    /**
+     * Hides the migration checkboxes
+     */
+    void hideMigration();
+
+
   signals:
 
   public slots:
diff --git a/src/app/qgslabelinggui.cpp b/src/app/qgslabelinggui.cpp
index 54aabcd73a..521fdda016 100644
--- a/src/app/qgslabelinggui.cpp
+++ b/src/app/qgslabelinggui.cpp
@@ -537,6 +537,7 @@ void QgsLabelingGui::populateDataDefinedButtons()
   registerDataDefinedButton( mCentroidDDBtn, QgsPalLayerSettings::CentroidWhole );
   registerDataDefinedButton( mPointQuadOffsetDDBtn, QgsPalLayerSettings::OffsetQuad );
   registerDataDefinedButton( mPointPositionOrderDDBtn, QgsPalLayerSettings::PredefinedPositionOrder );
+  registerDataDefinedButton( mLinePlacementFlagsDDBtn, QgsPalLayerSettings::LinePlacementOptions );
   registerDataDefinedButton( mPointOffsetDDBtn, QgsPalLayerSettings::OffsetXY );
   registerDataDefinedButton( mPointOffsetUnitsDDBtn, QgsPalLayerSettings::OffsetUnits );
   registerDataDefinedButton( mLineDistanceDDBtn, QgsPalLayerSettings::LabelDistance );
diff --git a/src/app/qgsmaptoollabel.cpp b/src/app/qgsmaptoollabel.cpp
index 2bdb268e37..b172a067a2 100644
--- a/src/app/qgsmaptoollabel.cpp
+++ b/src/app/qgsmaptoollabel.cpp
@@ -68,13 +68,12 @@ void QgsMapToolLabel::createRubberBands()
   delete mFeatureRubberBand;
 
   //label rubber band
-  QgsRectangle rect = mCurrentLabel.pos.labelRect;
   mLabelRubberBand = new QgsRubberBand( mCanvas, QgsWkbTypes::LineGeometry );
-  mLabelRubberBand->addPoint( QgsPointXY( rect.xMinimum(), rect.yMinimum() ) );
-  mLabelRubberBand->addPoint( QgsPointXY( rect.xMinimum(), rect.yMaximum() ) );
-  mLabelRubberBand->addPoint( QgsPointXY( rect.xMaximum(), rect.yMaximum() ) );
-  mLabelRubberBand->addPoint( QgsPointXY( rect.xMaximum(), rect.yMinimum() ) );
-  mLabelRubberBand->addPoint( QgsPointXY( rect.xMinimum(), rect.yMinimum() ) );
+  mLabelRubberBand->addPoint( mCurrentLabel.pos.cornerPoints.at( 0 ) );
+  mLabelRubberBand->addPoint( mCurrentLabel.pos.cornerPoints.at( 1 ) );
+  mLabelRubberBand->addPoint( mCurrentLabel.pos.cornerPoints.at( 2 ) );
+  mLabelRubberBand->addPoint( mCurrentLabel.pos.cornerPoints.at( 3 ) );
+  mLabelRubberBand->addPoint( mCurrentLabel.pos.cornerPoints.at( 0 ) );
   mLabelRubberBand->setColor( QColor( 0, 255, 0, 65 ) );
   mLabelRubberBand->setWidth( 3 );
   mLabelRubberBand->show();
diff --git a/src/app/qgsmaptoolpinlabels.cpp b/src/app/qgsmaptoolpinlabels.cpp
index 891d61863f..45ef31604e 100644
--- a/src/app/qgsmaptoolpinlabels.cpp
+++ b/src/app/qgsmaptoolpinlabels.cpp
@@ -140,13 +140,12 @@ void QgsMapToolPinLabels::highlightLabel( const QgsLabelPosition &labelpos,
     const QString &id,
     const QColor &color )
 {
-  QgsRectangle rect = labelpos.labelRect;
   QgsRubberBand *rb = new QgsRubberBand( mCanvas, QgsWkbTypes::PolygonGeometry );
-  rb->addPoint( QgsPointXY( rect.xMinimum(), rect.yMinimum() ) );
-  rb->addPoint( QgsPointXY( rect.xMinimum(), rect.yMaximum() ) );
-  rb->addPoint( QgsPointXY( rect.xMaximum(), rect.yMaximum() ) );
-  rb->addPoint( QgsPointXY( rect.xMaximum(), rect.yMinimum() ) );
-  rb->addPoint( QgsPointXY( rect.xMinimum(), rect.yMinimum() ) );
+  rb->addPoint( labelpos.cornerPoints.at( 0 ) );
+  rb->addPoint( labelpos.cornerPoints.at( 1 ) );
+  rb->addPoint( labelpos.cornerPoints.at( 2 ) );
+  rb->addPoint( labelpos.cornerPoints.at( 3 ) );
+  rb->addPoint( labelpos.cornerPoints.at( 0 ) );
   rb->setColor( color );
   rb->setWidth( 0 );
   rb->show();
diff --git a/src/app/qgsmaptoolreshape.cpp b/src/app/qgsmaptoolreshape.cpp
index d755cd82f2..9aa2521627 100644
--- a/src/app/qgsmaptoolreshape.cpp
+++ b/src/app/qgsmaptoolreshape.cpp
@@ -121,9 +121,11 @@ void QgsMapToolReshape::reshape( QgsVectorLayer *vlayer )
     bbox.combineExtentWith( points().at( i ).x(), points().at( i ).y() );
   }
 
-  QgsLineString reshapeLineString( points() );
-  if ( QgsWkbTypes::hasZ( vlayer->wkbType() ) )
-    reshapeLineString.addZValue( defaultZValue() );
+
+  QgsPointSequence pts;
+  QVector<QgsPoint> points;
+  captureCurve()->points( pts );
+  QgsLineString reshapeLineString( pts );
 
   //query all the features that intersect bounding box of capture line
   QgsFeatureIterator fit = vlayer->getFeatures( QgsFeatureRequest().setFilterRect( bbox ).setNoAttributes() );
@@ -143,7 +145,7 @@ void QgsMapToolReshape::reshape( QgsVectorLayer *vlayer )
     {
       // in case of a binding line, we just want to update the line from
       // the starting point and not both side
-      if ( isBinding && !geom.asPolyline().contains( points().first() ) )
+      if ( isBinding && !geom.asPolyline().contains( pts.first() ) )
         continue;
 
       reshapeReturn = geom.reshapeGeometry( reshapeLineString );
diff --git a/src/app/qgsoptions.cpp b/src/app/qgsoptions.cpp
index d98c0839d4..ed83cce8e5 100644
--- a/src/app/qgsoptions.cpp
+++ b/src/app/qgsoptions.cpp
@@ -51,6 +51,7 @@
 #include "qgsoptionswidgetfactory.h"
 #include "qgslocatorwidget.h"
 #include "qgslocatoroptionswidget.h"
+#include "qgsgui.h"
 
 #ifdef HAVE_OPENCL
 #include "qgsopenclutils.h"
@@ -89,7 +90,6 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
 {
   setupUi( this );
   connect( cbxProjectDefaultNew, &QCheckBox::toggled, this, &QgsOptions::cbxProjectDefaultNew_toggled );
-  connect( leProjectGlobalCrs, &QgsProjectionSelectionWidget::crsChanged, this, &QgsOptions::leProjectGlobalCrs_crsChanged );
   connect( leLayerGlobalCrs, &QgsProjectionSelectionWidget::crsChanged, this, &QgsOptions::leLayerGlobalCrs_crsChanged );
   connect( lstGdalDrivers, &QTreeWidget::itemDoubleClicked, this, &QgsOptions::lstGdalDrivers_itemDoubleClicked );
   connect( mProjectOnLaunchCmbBx, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsOptions::mProjectOnLaunchCmbBx_currentIndexChanged );
@@ -373,12 +373,12 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
 
   // cache settings
   mCacheDirectory->setText( mSettings->value( QStringLiteral( "cache/directory" ) ).toString() );
-  mCacheDirectory->setPlaceholderText( QDir( QgsApplication::qgisSettingsDirPath() ).canonicalPath() + QDir::separator() + QStringLiteral( "cache" ) );
+  mCacheDirectory->setPlaceholderText( QStandardPaths::writableLocation( QStandardPaths::CacheLocation ) );
   mCacheSize->setMinimum( 0 );
   mCacheSize->setMaximum( std::numeric_limits<int>::max() );
   mCacheSize->setSingleStep( 1024 );
-  qint64 cacheSize = mSettings->value( QStringLiteral( "cache/size" ), 50 * 1024 * 1024 ).toULongLong();
-  mCacheSize->setValue( ( int )( cacheSize / 1024 ) );
+  qint64 cacheSize = mSettings->value( QStringLiteral( "cache/size" ), 50 * 1024 * 1024 ).toLongLong();
+  mCacheSize->setValue( static_cast<int>( cacheSize / 1024 ) );
   connect( mBrowseCacheDirectory, &QAbstractButton::clicked, this, &QgsOptions::browseCacheDirectory );
   connect( mClearCache, &QAbstractButton::clicked, this, &QgsOptions::clearCache );
 
@@ -460,12 +460,24 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
   mLayerDefaultCrs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( myLayerDefaultCrs );
   leLayerGlobalCrs->setCrs( mLayerDefaultCrs );
 
-  QString myDefaultCrs = mSettings->value( QStringLiteral( "/Projections/projectDefaultCrs" ), GEO_EPSG_CRS_AUTHID ).toString();
-  mDefaultCrs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( myDefaultCrs );
-  leProjectGlobalCrs->setCrs( mDefaultCrs );
+  const QString defaultProjectCrs = mSettings->value( QStringLiteral( "/projections/defaultProjectCrs" ), GEO_EPSG_CRS_AUTHID, QgsSettings::App ).toString();
   leProjectGlobalCrs->setOptionVisible( QgsProjectionSelectionWidget::DefaultCrs, false );
+  leProjectGlobalCrs->setOptionVisible( QgsProjectionSelectionWidget::CrsNotSet, true );
+  leProjectGlobalCrs->setNotSetText( tr( "No projection (or unknown/non-Earth projection)" ) );
+  leProjectGlobalCrs->setCrs( QgsCoordinateReferenceSystem( defaultProjectCrs ) );
+  const QgsGui::ProjectCrsBehavior projectCrsBehavior = mSettings->enumValue( QStringLiteral( "/projections/newProjectCrsBehavior" ),  QgsGui::UseCrsOfFirstLayerAdded, QgsSettings::App );
+  switch ( projectCrsBehavior )
+  {
+    case QgsGui::UseCrsOfFirstLayerAdded:
+      radProjectUseCrsOfFirstLayer->setChecked( true );
+      break;
+
+    case QgsGui::UsePresetCrs:
+      radProjectUseDefaultCrs->setChecked( true );
+      break;
+  }
 
-  mShowDatumTransformDialogCheckBox->setChecked( mSettings->value( QStringLiteral( "/Projections/showDatumTransformDialog" ), false ).toBool() );
+  mShowDatumTransformDialogCheckBox->setChecked( mSettings->value( QStringLiteral( "/projections/promptWhenMultipleTransformsExist" ), false, QgsSettings::App ).toBool() );
 
   // Datum transforms
   QgsCoordinateTransformContext context;
@@ -1533,9 +1545,9 @@ void QgsOptions::saveOptions()
   }
 
   mSettings->setValue( QStringLiteral( "/Projections/layerDefaultCrs" ), mLayerDefaultCrs.authid() );
-  mSettings->setValue( QStringLiteral( "/Projections/projectDefaultCrs" ), mDefaultCrs.authid() );
-
-  mSettings->setValue( QStringLiteral( "/Projections/showDatumTransformDialog" ), mShowDatumTransformDialogCheckBox->isChecked() );
+  mSettings->setValue( QStringLiteral( "/projections/defaultProjectCrs" ), leProjectGlobalCrs->crs().authid(), QgsSettings::App );
+  mSettings->setEnumValue( QStringLiteral( "/projections/newProjectCrsBehavior" ), radProjectUseCrsOfFirstLayer->isChecked() ? QgsGui::UseCrsOfFirstLayerAdded : QgsGui::UsePresetCrs, QgsSettings::App );
+  mSettings->setValue( QStringLiteral( "/projections/promptWhenMultipleTransformsExist" ), mShowDatumTransformDialogCheckBox->isChecked(), QgsSettings::App );
 
   //measurement settings
 
@@ -1783,10 +1795,6 @@ void QgsOptions::mFontFamilyComboBox_currentFontChanged( const QFont &font )
   }
 }
 
-void QgsOptions::leProjectGlobalCrs_crsChanged( const QgsCoordinateReferenceSystem &crs )
-{
-  mDefaultCrs = crs;
-}
 
 void QgsOptions::leLayerGlobalCrs_crsChanged( const QgsCoordinateReferenceSystem &crs )
 {
diff --git a/src/app/qgsoptions.h b/src/app/qgsoptions.h
index eed0cf5f20..0501688c1a 100644
--- a/src/app/qgsoptions.h
+++ b/src/app/qgsoptions.h
@@ -69,8 +69,6 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption
     void resetProjectDefault();
     void browseTemplateFolder();
     void resetTemplateFolder();
-    //! Slot called when user chooses to change the project wide projection.
-    void leProjectGlobalCrs_crsChanged( const QgsCoordinateReferenceSystem &crs );
     //! Slot called when user chooses to change the default 'on the fly' projection.
     void leLayerGlobalCrs_crsChanged( const QgsCoordinateReferenceSystem &crs );
     void lstGdalDrivers_itemDoubleClicked( QTreeWidgetItem *item, int column );
@@ -237,7 +235,6 @@ class APP_EXPORT QgsOptions : public QgsOptionsDialogBase, private Ui::QgsOption
     void saveMinMaxLimits( QComboBox *cbox, const QString &name );
     void setZoomFactorValue();
     double zoomFactorValue();
-    QgsCoordinateReferenceSystem mDefaultCrs;
     QgsCoordinateReferenceSystem mLayerDefaultCrs;
     bool mLoadedGdalDriverList;
 
diff --git a/src/app/qgsrulebasedlabelingwidget.cpp b/src/app/qgsrulebasedlabelingwidget.cpp
index 8edfae2a5e..956c7698a2 100644
--- a/src/app/qgsrulebasedlabelingwidget.cpp
+++ b/src/app/qgsrulebasedlabelingwidget.cpp
@@ -596,8 +596,8 @@ QgsLabelingRulePropsWidget::QgsLabelingRulePropsWidget( QgsRuleBasedLabeling::Ru
   {
     groupScale->setChecked( true );
     // caution: rule uses scale denom, scale widget uses true scales
-    mScaleRangeWidget->setMaximumScale( std::max( rule->maximumScale(), 0.0 ) );
-    mScaleRangeWidget->setMinimumScale( std::max( rule->minimumScale(), 0.0 ) );
+    mScaleRangeWidget->setScaleRange( std::max( rule->minimumScale(), 0.0 ),
+                                      std::max( rule->maximumScale(), 0.0 ) );
   }
   mScaleRangeWidget->setMapCanvas( mMapCanvas );
 
diff --git a/src/app/vertextool/qgsvertextool.cpp b/src/app/vertextool/qgsvertextool.cpp
index 178f1ccab9..1e65e94bbc 100644
--- a/src/app/vertextool/qgsvertextool.cpp
+++ b/src/app/vertextool/qgsvertextool.cpp
@@ -313,6 +313,7 @@ QgsVertexTool::~QgsVertexTool()
   delete mVertexBand;
   delete mEdgeBand;
   delete mEndpointMarker;
+  delete mVertexEditor;
 }
 
 void QgsVertexTool::activate()
@@ -1391,12 +1392,12 @@ void QgsVertexTool::showVertexEditor()  //#spellok
 {
   if ( !mVertexEditor )
   {
-    mVertexEditor.reset( new QgsVertexEditor( mCanvas ) );
-    if ( !QgisApp::instance()->restoreDockWidget( mVertexEditor.get() ) )
-      QgisApp::instance()->addDockWidget( Qt::LeftDockWidgetArea, mVertexEditor.get() );
+    mVertexEditor = new QgsVertexEditor( mCanvas );
+    if ( !QgisApp::instance()->restoreDockWidget( mVertexEditor ) )
+      QgisApp::instance()->addDockWidget( Qt::LeftDockWidgetArea, mVertexEditor );
 
-    connect( mVertexEditor.get(), &QgsVertexEditor::deleteSelectedRequested, this, &QgsVertexTool::deleteVertexEditorSelection );
-    connect( mVertexEditor.get(), &QgsVertexEditor::editorClosed, this, &QgsVertexTool::cleanupVertexEditor );
+    connect( mVertexEditor, &QgsVertexEditor::deleteSelectedRequested, this, &QgsVertexTool::deleteVertexEditorSelection );
+    connect( mVertexEditor, &QgsVertexEditor::editorClosed, this, &QgsVertexTool::cleanupVertexEditor );
 
     // timer required as showing/raising the vertex editor in the same function following restoreDockWidget fails
     QTimer::singleShot( 200, this, [ = ] { mVertexEditor->show(); mVertexEditor->raise(); } );
@@ -1411,7 +1412,10 @@ void QgsVertexTool::showVertexEditor()  //#spellok
 void QgsVertexTool::cleanupVertexEditor()
 {
   mLockedFeature.reset();
-  mVertexEditor.reset();
+  // do not delete immediately because vertex editor
+  // can be still used in the qt event loop
+  mVertexEditor->deleteLater();
+
   updateLockedFeatureVertices();
 }
 
diff --git a/src/app/vertextool/qgsvertextool.h b/src/app/vertextool/qgsvertextool.h
index e5a35f61fe..87d3f64819 100644
--- a/src/app/vertextool/qgsvertextool.h
+++ b/src/app/vertextool/qgsvertextool.h
@@ -18,6 +18,8 @@
 
 #include <memory>
 
+#include <QPointer>
+
 #include "qgis_app.h"
 #include "qgsmaptooladvanceddigitizing.h"
 #include "qgsgeometry.h"
@@ -447,7 +449,7 @@ class APP_EXPORT QgsVertexTool : public QgsMapToolAdvancedDigitizing
     //! Locked feature for the vertex editor
     std::unique_ptr<QgsLockedFeature> mLockedFeature;
     //! Dock widget which allows editing vertices
-    std::unique_ptr<QgsVertexEditor> mVertexEditor;
+    QPointer<QgsVertexEditor> mVertexEditor;
 
     /**
      * Data structure that stores alternative features to the currently selected (locked) feature.
diff --git a/src/auth/basic/qgsauthbasicmethod.cpp b/src/auth/basic/qgsauthbasicmethod.cpp
index 371d15f3ac..ec738e8cf1 100644
--- a/src/auth/basic/qgsauthbasicmethod.cpp
+++ b/src/auth/basic/qgsauthbasicmethod.cpp
@@ -105,18 +105,28 @@ bool QgsAuthBasicMethod::updateDataSourceUriItems( QStringList &connectionItems,
     return false;
   }
 
+  QString sslMode = QStringLiteral( "prefer" );
+  int sslModeIdx = connectionItems.indexOf( QRegExp( "^sslmode=.*" ) );
+  if ( sslModeIdx != -1 )
+  {
+    sslMode = connectionItems.at( sslModeIdx ).split( '=' ).at( 1 );
+  }
+
   // SSL Extra CAs
   QString caparam;
   QList<QSslCertificate> cas;
-  cas = QgsApplication::authManager()->trustedCaCerts();
-  // save CAs to temp file
-  QString tempFileBase = QStringLiteral( "tmp_basic_%1.pem" );
-  QString caFilePath = QgsAuthCertUtils::pemTextToTempFile(
-                         tempFileBase.arg( QUuid::createUuid().toString() ),
-                         QgsAuthCertUtils::certsToPemText( cas ) );
-  if ( ! caFilePath.isEmpty() )
+  if ( sslMode.startsWith( QStringLiteral( "verify-" ) ) )
   {
-    caparam = "sslrootcert='" + caFilePath + "'";
+    cas = QgsApplication::authManager()->trustedCaCerts();
+    // save CAs to temp file
+    QString tempFileBase = QStringLiteral( "tmp_basic_%1.pem" );
+    QString caFilePath = QgsAuthCertUtils::pemTextToTempFile(
+                           tempFileBase.arg( QUuid::createUuid().toString() ),
+                           QgsAuthCertUtils::certsToPemText( cas ) );
+    if ( ! caFilePath.isEmpty() )
+    {
+      caparam = "sslrootcert='" + caFilePath + "'";
+    }
   }
 
   // Branch for OGR
diff --git a/src/auth/oauth2/qgsauthoauth2method.cpp b/src/auth/oauth2/qgsauthoauth2method.cpp
index a421b83ad5..8dc25e8787 100644
--- a/src/auth/oauth2/qgsauthoauth2method.cpp
+++ b/src/auth/oauth2/qgsauthoauth2method.cpp
@@ -142,23 +142,46 @@ bool QgsAuthOAuth2Method::updateNetworkRequest( QNetworkRequest &request, const
 
     if ( expired )
     {
-      msg = QStringLiteral( "Token expired, attempting refresh for authcfg %1" ).arg( authcfg );
-      QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
-
-      // Try to get a refresh token first
-      // go into local event loop and wait for a fired refresh-related slot
-      QEventLoop rloop( nullptr );
-      connect( o2, &QgsO2::refreshFinished, &rloop, &QEventLoop::quit );
-
-      // Asynchronously attempt the refresh
-      // TODO: This already has a timed reply setup in O2 base class (and in QgsNetworkAccessManager!)
-      //       May need to address this or app crashes will occur!
-      o2->refresh();
-
-      // block request update until asynchronous linking loop is quit
-      rloop.exec( QEventLoop::ExcludeUserInputEvents );
-
-      // refresh result should set o2 to (un)linked
+      if ( o2->refreshToken().isEmpty() || o2->refreshTokenUrl().isEmpty() )
+      {
+        msg = QStringLiteral( "Token expired, but no refresh token or URL defined for authcfg %1" ).arg( authcfg );
+        QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
+        // clear any previous token session properties
+        o2->unlink();
+      }
+      else
+      {
+        msg = QStringLiteral( "Token expired, attempting refresh for authcfg %1" ).arg( authcfg );
+        QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
+
+        // Try to get a refresh token first
+        // go into local event loop and wait for a fired refresh-related slot
+        QEventLoop rloop( nullptr );
+        connect( o2, &QgsO2::refreshFinished, &rloop, &QEventLoop::quit );
+
+        // add singlshot timer to quit refresh after an alloted timeout
+        // this should keep the local event loop from blocking forever
+        QTimer r_timer( nullptr );
+        int r_reqtimeout = o2->oauth2config()->requestTimeout() * 1000;
+        r_timer.setInterval( r_reqtimeout );
+        r_timer.setSingleShot( true );
+        connect( &r_timer, &QTimer::timeout, &rloop, &QEventLoop::quit );
+        r_timer.start();
+
+        // Asynchronously attempt the refresh
+        // TODO: This already has a timed reply setup in O2 base class (and in QgsNetworkAccessManager!)
+        //       May need to address this or app crashes will occur!
+        o2->refresh();
+
+        // block request update until asynchronous linking loop is quit
+        rloop.exec();
+        if ( r_timer.isActive() )
+        {
+          r_timer.stop();
+        }
+
+        // refresh result should set o2 to (un)linked
+      }
     }
   }
 
@@ -388,6 +411,12 @@ void QgsAuthOAuth2Method::onReplyFinished()
 {
   QgsMessageLog::logMessage( tr( "Network reply finished" ), AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
   QNetworkReply *reply = qobject_cast<QNetworkReply *>( sender() );
+  if ( !reply )
+  {
+    QString msg = tr( "Network reply finished but no reply object accessible" );
+    QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Warning );
+    return;
+  }
   QgsMessageLog::logMessage( tr( "Results: %1" ).arg( QString( reply->readAll() ) ),
                              AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
 }
@@ -411,12 +440,22 @@ void QgsAuthOAuth2Method::onNetworkError( QNetworkReply::NetworkError err )
 
   // TODO: update debug messages to output to QGIS
 
-  int status = reply->attribute( QNetworkRequest::HttpStatusCodeAttribute ).toInt();
-  msg = tr( "Network error, HTTP status: %1" ).arg(
-          reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString() );
-  QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
+  QVariant status = reply->attribute( QNetworkRequest::HttpStatusCodeAttribute );
+  if ( !status.isValid() )
+  {
+    msg = tr( "Network error but no reply object attributes found" );
+    QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Warning );
+    return;
+  }
+  QVariant phrase = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute );
+  if ( phrase.isValid() )
+  {
+    msg = tr( "Network error, HTTP status: %1" ).arg( phrase.toString() );
+    QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
+  }
+
 
-  if ( status == 401 )
+  if ( status.toInt() == 401 )
   {
     msg = tr( "Attempting token refresh..." );
     QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Info );
@@ -452,6 +491,12 @@ void QgsAuthOAuth2Method::onNetworkError( QNetworkReply::NetworkError err )
 void QgsAuthOAuth2Method::onRefreshFinished( QNetworkReply::NetworkError err )
 {
   QNetworkReply *reply = qobject_cast<QNetworkReply *>( sender() );
+  if ( !reply )
+  {
+    QString msg = tr( "Token refresh finished but no reply object accessible" );
+    QgsMessageLog::logMessage( msg, AUTH_METHOD_KEY, Qgis::MessageLevel::Warning );
+    return;
+  }
   if ( err != QNetworkReply::NoError )
   {
     QgsMessageLog::logMessage( tr( "Token refresh error: %1" ).arg( reply->errorString() ),
diff --git a/src/core/auth/qgsauthmanager.cpp b/src/core/auth/qgsauthmanager.cpp
index c369a46481..72c904e045 100644
--- a/src/core/auth/qgsauthmanager.cpp
+++ b/src/core/auth/qgsauthmanager.cpp
@@ -1698,6 +1698,8 @@ bool QgsAuthManager::initSslCaches()
   res = res && rebuildCertTrustCache();
   res = res && rebuildTrustedCaCertsCache();
   res = res && rebuildIgnoredSslErrorCache();
+  mCustomConfigByHostCache.clear();
+  mHasCheckedIfCustomConfigByHostExists = false;
 
   QgsDebugMsg( QStringLiteral( "Init of SSL caches %1" ).arg( res ? "SUCCEEDED" : "FAILED" ) );
   return res;
@@ -1994,6 +1996,8 @@ bool QgsAuthManager::storeSslCertCustomConfig( const QgsAuthConfigSslServer &con
                .arg( config.sslHostPort().trimmed(), id ) );
 
   updateIgnoredSslErrorsCacheFromConfig( config );
+  mHasCheckedIfCustomConfigByHostExists = false;
+  mCustomConfigByHostCache.clear();
 
   return true;
 }
@@ -2042,23 +2046,53 @@ const QgsAuthConfigSslServer QgsAuthManager::sslCertCustomConfig( const QString
 
 const QgsAuthConfigSslServer QgsAuthManager::sslCertCustomConfigByHost( const QString &hostport )
 {
-  QMutexLocker locker( mMutex );
   QgsAuthConfigSslServer config;
-
   if ( hostport.isEmpty() )
   {
-    QgsDebugMsg( QStringLiteral( "Passed host:port is empty" ) );
     return config;
   }
 
+  QMutexLocker locker( mMutex );
+  if ( mHasCheckedIfCustomConfigByHostExists && !mHasCustomConfigByHost )
+    return config;
+  if ( mCustomConfigByHostCache.contains( hostport ) )
+    return mCustomConfigByHostCache.value( hostport );
+
   QSqlQuery query( authDatabaseConnection() );
+
+  // first run -- see if we have ANY custom config by host. If not, we can skip all future checks for any host
+  if ( !mHasCheckedIfCustomConfigByHostExists )
+  {
+    mHasCheckedIfCustomConfigByHostExists = true;
+    query.prepare( QString( "SELECT count(*) FROM %1" ).arg( authDatabaseServersTable() ) );
+    if ( !authDbQuery( &query ) )
+    {
+      mHasCustomConfigByHost = false;
+      return config;
+    }
+    if ( query.isActive() && query.isSelect() && query.first() )
+    {
+      mHasCustomConfigByHost = query.value( 0 ).toInt() > 0;
+      if ( !mHasCustomConfigByHost )
+        return config;
+    }
+    else
+    {
+      mHasCustomConfigByHost = false;
+      return config;
+    }
+  }
+
   query.prepare( QString( "SELECT id, host, cert, config FROM %1 "
                           "WHERE host = :host" ).arg( authDatabaseServersTable() ) );
 
   query.bindValue( QStringLiteral( ":host" ), hostport.trimmed() );
 
   if ( !authDbQuery( &query ) )
+  {
+    mCustomConfigByHostCache.insert( hostport, config );
     return config;
+  }
 
   if ( query.isActive() && query.isSelect() )
   {
@@ -2075,9 +2109,12 @@ const QgsAuthConfigSslServer QgsAuthManager::sslCertCustomConfigByHost( const QS
       emit messageOut( tr( "Authentication database contains duplicate SSL cert custom configs for host:port: %1" )
                        .arg( hostport ), authManTag(), WARNING );
       QgsAuthConfigSslServer emptyconfig;
+      mCustomConfigByHostCache.insert( hostport, emptyconfig );
       return emptyconfig;
     }
   }
+
+  mCustomConfigByHostCache.insert( hostport, config );
   return config;
 }
 
@@ -2155,6 +2192,9 @@ bool QgsAuthManager::removeSslCertCustomConfig( const QString &id, const QString
     return false;
   }
 
+  mHasCheckedIfCustomConfigByHostExists = false;
+  mCustomConfigByHostCache.clear();
+
   QSqlQuery query( authDatabaseConnection() );
 
   query.prepare( QStringLiteral( "DELETE FROM %1 WHERE id = :id AND host = :host" ).arg( authDatabaseServersTable() ) );
diff --git a/src/core/auth/qgsauthmanager.h b/src/core/auth/qgsauthmanager.h
index af0005c48b..a74dab0496 100644
--- a/src/core/auth/qgsauthmanager.h
+++ b/src/core/auth/qgsauthmanager.h
@@ -874,6 +874,10 @@ class CORE_EXPORT QgsAuthManager : public QObject
     QList<QSslCertificate> mTrustedCaCertsCache;
     // cache of SSL errors to be ignored in network connections, per sha-hostport
     QHash<QString, QSet<QSslError::SslError> > mIgnoredSslErrorsCache;
+
+    bool mHasCustomConfigByHost = false;
+    bool mHasCheckedIfCustomConfigByHostExists = false;
+    QMap< QString, QgsAuthConfigSslServer > mCustomConfigByHostCache;
 #endif
 
     //////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/dxf/qgsdxfexport.cpp b/src/core/dxf/qgsdxfexport.cpp
index 60717172e9..431d0fa38d 100644
--- a/src/core/dxf/qgsdxfexport.cpp
+++ b/src/core/dxf/qgsdxfexport.cpp
@@ -3721,13 +3721,13 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
   if ( !fet->hasGeometry() )
     return;
 
-  std::unique_ptr<QgsAbstractGeometry> geom( fet->geometry().constGet()->clone() );
+  QgsGeometry geom( fet->geometry() );
   if ( ct.isValid() )
   {
-    geom->transform( ct );
+    geom.transform( ct );
   }
 
-  QgsWkbTypes::Type geometryType = geom->wkbType();
+  QgsWkbTypes::Type geometryType = geom.wkbType();
 
   QColor penColor;
   QColor brushColor;
@@ -3763,13 +3763,13 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
   // single point
   if ( QgsWkbTypes::flatType( geometryType ) == QgsWkbTypes::Point )
   {
-    writePoint( geom->coordinateSequence().at( 0 ).at( 0 ).at( 0 ), layer, penColor, ctx, symbolLayer, symbol, angle );
+    writePoint( geom.constGet()->coordinateSequence().at( 0 ).at( 0 ).at( 0 ), layer, penColor, ctx, symbolLayer, symbol, angle );
     return;
   }
 
   if ( QgsWkbTypes::flatType( geometryType ) == QgsWkbTypes::MultiPoint )
   {
-    const QgsCoordinateSequence &cs = geom->coordinateSequence();
+    const QgsCoordinateSequence &cs = geom.constGet()->coordinateSequence();
     for ( int i = 0; i < cs.size(); i++ )
     {
       writePoint( cs.at( i ).at( 0 ).at( 0 ), layer, penColor, ctx, symbolLayer, symbol, angle );
@@ -3779,49 +3779,52 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
 
   if ( penStyle != Qt::NoPen )
   {
-    const QgsAbstractGeometry *tempGeom = geom.get();
+    const QgsAbstractGeometry *sourceGeom = geom.constGet();
+    std::unique_ptr< QgsAbstractGeometry > tempGeom;
 
     switch ( QgsWkbTypes::flatType( geometryType ) )
     {
       case QgsWkbTypes::CircularString:
       case QgsWkbTypes::CompoundCurve:
-        tempGeom = geom->segmentize();
+        tempGeom.reset( geom.constGet()->segmentize() );
+        sourceGeom = tempGeom.get();
         if ( !tempGeom )
           break;
         FALLTHROUGH
       case QgsWkbTypes::LineString:
         if ( !qgsDoubleNear( offset, 0.0 ) )
         {
-          QgsGeos geos( tempGeom );
-          if ( tempGeom != geom.get() )
-            delete tempGeom;
-          tempGeom = geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 );  //#spellok
-          if ( !tempGeom )
-            tempGeom = geom.get();
+          QgsGeos geos( sourceGeom );
+          tempGeom.reset( geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 ) );  //#spellok
+          if ( tempGeom )
+            sourceGeom = tempGeom.get();
+          else
+            sourceGeom = geom.constGet();
         }
 
-        writePolyline( tempGeom->coordinateSequence().at( 0 ).at( 0 ), layer, lineStyleName, penColor, width );
+        writePolyline( sourceGeom->coordinateSequence().at( 0 ).at( 0 ), layer, lineStyleName, penColor, width );
 
         break;
 
       case QgsWkbTypes::MultiCurve:
-        tempGeom = geom->segmentize();
+        tempGeom.reset( geom.constGet()->segmentize() );
         if ( !tempGeom )
           break;
+        sourceGeom = tempGeom.get();
         FALLTHROUGH
       case QgsWkbTypes::MultiLineString:
       {
         if ( !qgsDoubleNear( offset, 0.0 ) )
         {
-          QgsGeos geos( tempGeom );
-          if ( tempGeom != geom.get() )
-            delete tempGeom;
-          tempGeom = geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 );  //#spellok
-          if ( !tempGeom )
-            tempGeom = geom.get();
+          QgsGeos geos( sourceGeom );
+          tempGeom.reset( geos.offsetCurve( offset, 0, GEOSBUF_JOIN_MITRE, 2.0 ) );  //#spellok
+          if ( tempGeom )
+            sourceGeom = tempGeom.get();
+          else
+            sourceGeom = geom.constGet();
         }
 
-        const QgsCoordinateSequence &cs = tempGeom->coordinateSequence();
+        const QgsCoordinateSequence &cs = sourceGeom->coordinateSequence();
         for ( int i = 0; i < cs.size(); i++ )
         {
           writePolyline( cs.at( i ).at( 0 ), layer, lineStyleName, penColor, width );
@@ -3831,23 +3834,24 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
       }
 
       case QgsWkbTypes::CurvePolygon:
-        tempGeom = geom->segmentize();
+        tempGeom.reset( geom.constGet()->segmentize() );
         if ( !tempGeom )
           break;
+        sourceGeom = tempGeom.get();
         FALLTHROUGH
       case QgsWkbTypes::Polygon:
       {
         if ( !qgsDoubleNear( offset, 0.0 ) )
         {
-          QgsGeos geos( tempGeom );
-          if ( tempGeom != geom.get() )
-            delete tempGeom;
-          tempGeom = geos.buffer( offset, 0,  GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 );  //#spellok
-          if ( !tempGeom )
-            tempGeom = geom.get();
+          QgsGeos geos( sourceGeom );
+          tempGeom.reset( geos.buffer( offset, 0,  GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 ) );  //#spellok
+          if ( tempGeom )
+            sourceGeom = tempGeom.get();
+          else
+            sourceGeom = geom.constGet();
         }
 
-        const QgsCoordinateSequence &cs = tempGeom->coordinateSequence();
+        const QgsCoordinateSequence &cs = sourceGeom->coordinateSequence();
         for ( int i = 0; i < cs.at( 0 ).size(); i++ )
         {
           writePolyline( cs.at( 0 ).at( i ), layer, lineStyleName, penColor, width );
@@ -3856,19 +3860,25 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
         break;
       }
 
+      case QgsWkbTypes::MultiSurface:
+        tempGeom.reset( geom.constGet()->segmentize() );
+        if ( !tempGeom )
+          break;
+        sourceGeom = tempGeom.get();
+        FALLTHROUGH
       case QgsWkbTypes::MultiPolygon:
       {
         if ( !qgsDoubleNear( offset, 0.0 ) )
         {
-          QgsGeos geos( tempGeom );
-          if ( tempGeom != geom.get() )
-            delete tempGeom;
-          tempGeom = geos.buffer( offset, 0,  GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 );  //#spellok
-          if ( !tempGeom )
-            tempGeom = geom.get();
+          QgsGeos geos( sourceGeom );
+          tempGeom.reset( geos.buffer( offset, 0,  GEOSBUF_CAP_FLAT, GEOSBUF_JOIN_MITRE, 2.0 ) );  //#spellok
+          if ( tempGeom )
+            sourceGeom = tempGeom.get();
+          else
+            sourceGeom = geom.constGet();
         }
 
-        const QgsCoordinateSequence &cs = tempGeom->coordinateSequence();
+        const QgsCoordinateSequence &cs = sourceGeom->coordinateSequence();
         for ( int i = 0; i < cs.size(); i++ )
           for ( int j = 0; j < cs.at( i ).size(); j++ )
             writePolyline( cs.at( i ).at( j ), layer, lineStyleName, penColor, width );
@@ -3880,28 +3890,34 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
         break;
     }
 
-    if ( tempGeom != geom.get() )
-      delete tempGeom;
   }
 
   if ( brushStyle != Qt::NoBrush )
   {
-    const QgsAbstractGeometry *tempGeom = geom.get();
+    const QgsAbstractGeometry *sourceGeom = geom.constGet();
+    std::unique_ptr< QgsAbstractGeometry > tempGeom;
 
     switch ( QgsWkbTypes::flatType( geometryType ) )
     {
       case QgsWkbTypes::CurvePolygon:
-        tempGeom = tempGeom->segmentize();
+        tempGeom.reset( geom.constGet()->segmentize() );
         if ( !tempGeom )
           break;
+        sourceGeom = tempGeom.get();
         FALLTHROUGH
       case QgsWkbTypes::Polygon:
-        writePolygon( tempGeom->coordinateSequence().at( 0 ), layer, QStringLiteral( "SOLID" ), brushColor );
+        writePolygon( sourceGeom->coordinateSequence().at( 0 ), layer, QStringLiteral( "SOLID" ), brushColor );
         break;
 
+      case QgsWkbTypes::MultiSurface:
+        tempGeom.reset( geom.constGet()->segmentize() );
+        if ( !tempGeom )
+          break;
+        sourceGeom = tempGeom.get();
+        FALLTHROUGH
       case QgsWkbTypes::MultiPolygon:
       {
-        const QgsCoordinateSequence &cs = geom->coordinateSequence();
+        const QgsCoordinateSequence &cs = sourceGeom->coordinateSequence();
         for ( int i = 0; i < cs.size(); i++ )
         {
           writePolygon( cs.at( i ), layer, QStringLiteral( "SOLID" ), brushColor );
@@ -3913,9 +3929,6 @@ void QgsDxfExport::addFeature( QgsSymbolRenderContext &ctx, const QgsCoordinateT
         break;
 
     }
-
-    if ( tempGeom != geom.get() )
-      delete tempGeom;
   }
 }
 
diff --git a/src/core/effects/qgsblureffect.cpp b/src/core/effects/qgsblureffect.cpp
index cf3dd4edb6..9d442d12e5 100644
--- a/src/core/effects/qgsblureffect.cpp
+++ b/src/core/effects/qgsblureffect.cpp
@@ -18,6 +18,7 @@
 #include "qgsblureffect.h"
 #include "qgsimageoperation.h"
 #include "qgsrendercontext.h"
+#include "qgssymbollayerutils.h"
 
 QgsPaintEffect *QgsBlurEffect::create( const QgsStringMap &map )
 {
@@ -44,14 +45,16 @@ void QgsBlurEffect::draw( QgsRenderContext &context )
 
 void QgsBlurEffect::drawStackBlur( QgsRenderContext &context )
 {
+  int blurLevel = std::floor( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
   QImage im = sourceAsImage( context )->copy();
-  QgsImageOperation::stackBlur( im, mBlurLevel );
+  QgsImageOperation::stackBlur( im, blurLevel );
   drawBlurredImage( context, im );
 }
 
 void QgsBlurEffect::drawGaussianBlur( QgsRenderContext &context )
 {
-  QImage *im = QgsImageOperation::gaussianBlur( *sourceAsImage( context ), mBlurLevel );
+  int blurLevel = std::floor( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
+  QImage *im = QgsImageOperation::gaussianBlur( *sourceAsImage( context ), blurLevel );
   drawBlurredImage( context, *im );
   delete im;
 }
@@ -76,6 +79,8 @@ QgsStringMap QgsBlurEffect::properties() const
   props.insert( QStringLiteral( "blend_mode" ), QString::number( static_cast< int >( mBlendMode ) ) );
   props.insert( QStringLiteral( "opacity" ), QString::number( mOpacity ) );
   props.insert( QStringLiteral( "blur_level" ), QString::number( mBlurLevel ) );
+  props.insert( QStringLiteral( "blur_unit" ), QgsUnitTypes::encodeUnit( mBlurUnit ) );
+  props.insert( QStringLiteral( "blur_unit_scale" ), QgsSymbolLayerUtils::encodeMapUnitScale( mBlurMapUnitScale ) );
   props.insert( QStringLiteral( "blur_method" ), QString::number( static_cast< int >( mBlurMethod ) ) );
   return props;
 }
@@ -107,11 +112,18 @@ void QgsBlurEffect::readProperties( const QgsStringMap &props )
 
   mEnabled = props.value( QStringLiteral( "enabled" ), QStringLiteral( "1" ) ).toInt();
   mDrawMode = static_cast< QgsPaintEffect::DrawMode >( props.value( QStringLiteral( "draw_mode" ), QStringLiteral( "2" ) ).toInt() );
-  int level = props.value( QStringLiteral( "blur_level" ) ).toInt( &ok );
+  double level = props.value( QStringLiteral( "blur_level" ) ).toDouble( &ok );
   if ( ok )
   {
     mBlurLevel = level;
+    if ( !props.contains( QStringLiteral( "blur_unit" ) ) )
+    {
+      // deal with pre blur unit era by assuming 96 dpi and converting pixel values as millimeters
+      mBlurLevel *= 0.2645;
+    }
   }
+  mBlurUnit = QgsUnitTypes::decodeRenderUnit( props.value( QStringLiteral( "blur_unit" ) ) );
+  mBlurMapUnitScale = QgsSymbolLayerUtils::decodeMapUnitScale( props.value( QStringLiteral( "blur_unit_scale" ) ) );
   QgsBlurEffect::BlurMethod method = static_cast< QgsBlurEffect::BlurMethod >( props.value( QStringLiteral( "blur_method" ) ).toInt( &ok ) );
   if ( ok )
   {
@@ -127,9 +139,8 @@ QgsBlurEffect *QgsBlurEffect::clone() const
 
 QRectF QgsBlurEffect::boundingRect( const QRectF &rect, const QgsRenderContext &context ) const
 {
-  Q_UNUSED( context );
-
+  int blurLevel = std::round( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
   //plus possible extension due to blur, with a couple of extra pixels thrown in for safety
-  double spread = mBlurLevel * 2.0 + 10;
+  double spread = blurLevel * 2.0 + 10;
   return rect.adjusted( -spread, -spread, spread, spread );
 }
diff --git a/src/core/effects/qgsblureffect.h b/src/core/effects/qgsblureffect.h
index d23ad36766..bca002aa68 100644
--- a/src/core/effects/qgsblureffect.h
+++ b/src/core/effects/qgsblureffect.h
@@ -19,6 +19,8 @@
 
 #include "qgis_core.h"
 #include "qgspainteffect.h"
+#include "qgsunittypes.h"
+#include "qgsmapunitscale.h"
 #include "qgis.h"
 #include <QPainter>
 
@@ -61,22 +63,66 @@ class CORE_EXPORT QgsBlurEffect : public QgsPaintEffect
     QgsBlurEffect *clone() const override SIP_FACTORY;
 
     /**
-     * Sets blur level (strength)
+     * Sets blur level (radius)
      * \param level blur level. Depending on the current blurMethod(), this parameter
      * has different effects
      * \see blurLevel
-     * \see blurMethod
+     * \see setBlurUnit
+     * \see setBlurMapUnitScale
+     * \see setBlurMethod
      */
-    void setBlurLevel( const int level ) { mBlurLevel = level; }
+    void setBlurLevel( const double level ) { mBlurLevel = level; }
 
     /**
-     * Returns the blur level (strength)
+     * Returns the blur level (radius)
      * \returns blur level. Depending on the current blurMethod(), this parameter
      * has different effects
      * \see setBlurLevel
+     * \see blurUnit
+     * \see blurMapUnitScale
      * \see blurMethod
      */
-    int blurLevel() const { return mBlurLevel; }
+    double blurLevel() const { return mBlurLevel; }
+
+    /**
+     * Sets the units used for the blur level (radius).
+     * \param unit units for blur level
+     * \see blurUnit
+     * \see setBlurLevel
+     * \see setBlurMapUnitScale
+     * \since QGIS 3.4.9
+     */
+    void setBlurUnit( const QgsUnitTypes::RenderUnit unit ) { mBlurUnit = unit; }
+
+    /**
+     * Returns the units used for the blur level (radius).
+     * \returns units for blur level
+     * \see setBlurUnit
+     * \see blurLevel
+     * \see blurMapUnitScale
+     * \since QGIS 3.4.9
+     */
+    QgsUnitTypes::RenderUnit blurUnit() const { return mBlurUnit; }
+
+    /**
+     * Sets the map unit scale used for the blur strength (radius).
+     * \param scale map unit scale for blur strength
+     * \see blurMapUnitScale
+     * \see setBlurLevel
+     * \see setBlurUnit
+     * \since QGIS 3.4.9
+     */
+    void setBlurMapUnitScale( const QgsMapUnitScale &scale ) { mBlurMapUnitScale = scale; }
+
+    /**
+     * Returns the map unit scale used for the blur strength (radius).
+     * \returns map unit scale for blur strength
+     * \see setBlurMapUnitScale
+     * \see blurLevel
+     * \see blurUnit
+     * \since QGIS 3.4.9
+     */
+    const QgsMapUnitScale &blurMapUnitScale() const { return mBlurMapUnitScale; }
 
     /**
      * Sets the blur method (algorithm) to use for performing the blur.
@@ -131,7 +177,9 @@ class CORE_EXPORT QgsBlurEffect : public QgsPaintEffect
 
   private:
 
-    int mBlurLevel = 10;
+    double mBlurLevel = 2.645;
+    QgsUnitTypes::RenderUnit mBlurUnit = QgsUnitTypes::RenderMillimeters;
+    QgsMapUnitScale mBlurMapUnitScale;
     BlurMethod mBlurMethod = StackBlur;
     double mOpacity = 1.0;
     QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
diff --git a/src/core/effects/qgsgloweffect.cpp b/src/core/effects/qgsgloweffect.cpp
index d636972c23..4cd943c030 100644
--- a/src/core/effects/qgsgloweffect.cpp
+++ b/src/core/effects/qgsgloweffect.cpp
@@ -78,9 +78,16 @@ void QgsGlowEffect::draw( QgsRenderContext &context )
   dtProps.ramp = ramp;
   QgsImageOperation::distanceTransform( im, dtProps );
 
-  if ( mBlurLevel > 0 )
+  int blurLevel = std::floor( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
+  if ( blurLevel <= 16 )
   {
-    QgsImageOperation::stackBlur( im, mBlurLevel );
+    QgsImageOperation::stackBlur( im, blurLevel );
+  }
+  else
+  {
+    QImage *imb = QgsImageOperation::gaussianBlur( im, blurLevel );
+    im = QImage( *imb );
+    delete imb;
   }
 
   QgsImageOperation::multiplyOpacity( im, mOpacity );
@@ -110,6 +117,8 @@ QgsStringMap QgsGlowEffect::properties() const
   props.insert( QStringLiteral( "blend_mode" ), QString::number( int( mBlendMode ) ) );
   props.insert( QStringLiteral( "opacity" ), QString::number( mOpacity ) );
   props.insert( QStringLiteral( "blur_level" ), QString::number( mBlurLevel ) );
+  props.insert( QStringLiteral( "blur_unit" ), QgsUnitTypes::encodeUnit( mBlurUnit ) );
+  props.insert( QStringLiteral( "blur_unit_scale" ), QgsSymbolLayerUtils::encodeMapUnitScale( mBlurMapUnitScale ) );
   props.insert( QStringLiteral( "spread" ), QString::number( mSpread ) );
   props.insert( QStringLiteral( "spread_unit" ), QgsUnitTypes::encodeUnit( mSpreadUnit ) );
   props.insert( QStringLiteral( "spread_unit_scale" ), QgsSymbolLayerUtils::encodeMapUnitScale( mSpreadMapUnitScale ) );
@@ -150,11 +159,18 @@ void QgsGlowEffect::readProperties( const QgsStringMap &props )
   }
   mEnabled = props.value( QStringLiteral( "enabled" ), QStringLiteral( "1" ) ).toInt();
   mDrawMode = static_cast< QgsPaintEffect::DrawMode >( props.value( QStringLiteral( "draw_mode" ), QStringLiteral( "2" ) ).toInt() );
-  int level = props.value( QStringLiteral( "blur_level" ) ).toInt( &ok );
+  double level = props.value( QStringLiteral( "blur_level" ) ).toDouble( &ok );
   if ( ok )
   {
     mBlurLevel = level;
+    if ( !props.contains( QStringLiteral( "blur_unit" ) ) )
+    {
+      // deal with pre blur unit era by assuming 96 dpi and converting pixel values as millimeters
+      mBlurLevel *= 0.2645;
+    }
   }
+  mBlurUnit = QgsUnitTypes::decodeRenderUnit( props.value( QStringLiteral( "blur_unit" ) ) );
+  mBlurMapUnitScale = QgsSymbolLayerUtils::decodeMapUnitScale( props.value( QStringLiteral( "blur_unit_scale" ) ) );
   double spread = props.value( QStringLiteral( "spread" ) ).toDouble( &ok );
   if ( ok )
   {
@@ -210,10 +226,11 @@ QgsGlowEffect &QgsGlowEffect::operator=( const QgsGlowEffect &rhs )
 
 QRectF QgsGlowEffect::boundingRect( const QRectF &rect, const QgsRenderContext &context ) const
 {
-  //spread size
+  //blur radius and spread size
+  int blurLevel = std::round( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
   double spread = context.convertToPainterUnits( mSpread, mSpreadUnit, mSpreadMapUnitScale );
   //plus possible extension due to blur, with a couple of extra pixels thrown in for safety
-  spread += mBlurLevel * 2 + 10;
+  spread += blurLevel * 2 + 10;
   return rect.adjusted( -spread, -spread, spread, spread );
 }
 
diff --git a/src/core/effects/qgsgloweffect.h b/src/core/effects/qgsgloweffect.h
index eb7454738a..9c0cb2f0b0 100644
--- a/src/core/effects/qgsgloweffect.h
+++ b/src/core/effects/qgsgloweffect.h
@@ -109,21 +109,63 @@ class CORE_EXPORT QgsGlowEffect : public QgsPaintEffect
     const QgsMapUnitScale &spreadMapUnitScale() const { return mSpreadMapUnitScale; }
 
     /**
-     * Sets blur level (strength) for the glow. This can be used to smooth the
+     * Sets blur level (radius) for the glow. This can be used to smooth the
      * output from the glow effect.
-     * \param level blur level. Values between 0 and 16 are valid, with larger
-     * values indicating greater blur strength.
+     * \param level blur level.
      * \see blurLevel
+     * \see setBlurUnit
+     * \see setBlurMapUnitScale
      */
-    void setBlurLevel( const int level ) { mBlurLevel = level; }
+    void setBlurLevel( const double level ) { mBlurLevel = level; }
 
     /**
-     * Returns the blur level (strength) for the glow.
-     * \returns blur level. Value will be between 0 and 16, with larger
-     * values indicating greater blur strength.
+     * Returns the blur level (radius) for the glow.
+     * \returns blur level.
      * \see setBlurLevel
+     * \see blurUnit
+     * \see blurMapUnitScale
      */
-    int blurLevel() const { return mBlurLevel; }
+    double blurLevel() const { return mBlurLevel; }
+
+    /**
+     * Sets the units used for the glow blur level (radius).
+     * \param unit units for blur level
+     * \see blurUnit
+     * \see setBlurLevel
+     * \see setBlurMapUnitScale
+     * \since QGIS 3.4.9
+     */
+    void setBlurUnit( const QgsUnitTypes::RenderUnit unit ) { mBlurUnit = unit; }
+
+    /**
+     * Returns the units used for the glow blur level (radius).
+     * \returns units for blur level
+     * \see setBlurUnit
+     * \see blurLevel
+     * \see blurMapUnitScale
+     * \since QGIS 3.4.9
+     */
+    QgsUnitTypes::RenderUnit blurUnit() const { return mBlurUnit; }
+
+    /**
+     * Sets the map unit scale used for the glow blur strength (radius).
+     * \param scale map unit scale for blur strength
+     * \see blurMapUnitScale
+     * \see setBlurLevel
+     * \see setBlurUnit
+     * \since QGIS 3.4.9
+     */
+    void setBlurMapUnitScale( const QgsMapUnitScale &scale ) { mBlurMapUnitScale = scale; }
+
+    /**
+     * Returns the map unit scale used for the glow blur strength (radius).
+     * \returns map unit scale for blur strength
+     * \see setBlurMapUnitScale
+     * \see blurLevel
+     * \see blurUnit
+     * \since QGIS 3.4.9
+     */
+    const QgsMapUnitScale &blurMapUnitScale() const { return mBlurMapUnitScale; }
 
     /**
      * Sets the \a opacity for the effect.
@@ -235,7 +277,9 @@ class CORE_EXPORT QgsGlowEffect : public QgsPaintEffect
     QgsUnitTypes::RenderUnit mSpreadUnit = QgsUnitTypes::RenderMillimeters;
     QgsMapUnitScale mSpreadMapUnitScale;
     QgsColorRamp *mRamp = nullptr;
-    int mBlurLevel = 3;
+    double mBlurLevel = 2.645;
+    QgsUnitTypes::RenderUnit mBlurUnit = QgsUnitTypes::RenderMillimeters;
+    QgsMapUnitScale mBlurMapUnitScale;
     double mOpacity = 0.5;
     QColor mColor;
     QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
diff --git a/src/core/effects/qgsshadoweffect.cpp b/src/core/effects/qgsshadoweffect.cpp
index a6c215ff96..af25377841 100644
--- a/src/core/effects/qgsshadoweffect.cpp
+++ b/src/core/effects/qgsshadoweffect.cpp
@@ -45,7 +45,18 @@ void QgsShadowEffect::draw( QgsRenderContext &context )
   }
 
   QgsImageOperation::overlayColor( colorisedIm, mColor );
-  QgsImageOperation::stackBlur( colorisedIm, mBlurLevel );
+
+  int blurLevel = std::floor( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
+  if ( blurLevel <= 16 )
+  {
+    QgsImageOperation::stackBlur( colorisedIm, blurLevel );
+  }
+  else
+  {
+    QImage *imb = QgsImageOperation::gaussianBlur( colorisedIm, blurLevel );
+    colorisedIm = QImage( *imb );
+    delete imb;
+  }
 
   double offsetDist = context.convertToPainterUnits( mOffsetDist, mOffsetUnit, mOffsetMapUnitScale );
 
@@ -88,6 +99,8 @@ QgsStringMap QgsShadowEffect::properties() const
   props.insert( QStringLiteral( "blend_mode" ), QString::number( int( mBlendMode ) ) );
   props.insert( QStringLiteral( "opacity" ), QString::number( mOpacity ) );
   props.insert( QStringLiteral( "blur_level" ), QString::number( mBlurLevel ) );
+  props.insert( QStringLiteral( "blur_unit" ), QgsUnitTypes::encodeUnit( mBlurUnit ) );
+  props.insert( QStringLiteral( "blur_unit_scale" ), QgsSymbolLayerUtils::encodeMapUnitScale( mBlurMapUnitScale ) );
   props.insert( QStringLiteral( "offset_angle" ), QString::number( mOffsetAngle ) );
   props.insert( QStringLiteral( "offset_distance" ), QString::number( mOffsetDist ) );
   props.insert( QStringLiteral( "offset_unit" ), QgsUnitTypes::encodeUnit( mOffsetUnit ) );
@@ -122,11 +135,18 @@ void QgsShadowEffect::readProperties( const QgsStringMap &props )
   }
   mEnabled = props.value( QStringLiteral( "enabled" ), QStringLiteral( "1" ) ).toInt();
   mDrawMode = static_cast< QgsPaintEffect::DrawMode >( props.value( QStringLiteral( "draw_mode" ), QStringLiteral( "2" ) ).toInt() );
-  int level = props.value( QStringLiteral( "blur_level" ) ).toInt( &ok );
+  double level = props.value( QStringLiteral( "blur_level" ) ).toDouble( &ok );
   if ( ok )
   {
     mBlurLevel = level;
+    if ( !props.contains( QStringLiteral( "blur_unit" ) ) )
+    {
+      // deal with pre blur unit era by assuming 96 dpi and converting pixel values as millimeters
+      mBlurLevel *= 0.2645;
+    }
   }
+  mBlurUnit = QgsUnitTypes::decodeRenderUnit( props.value( QStringLiteral( "blur_unit" ) ) );
+  mBlurMapUnitScale = QgsSymbolLayerUtils::decodeMapUnitScale( props.value( QStringLiteral( "blur_unit_scale" ) ) );
   int angle = props.value( QStringLiteral( "offset_angle" ) ).toInt( &ok );
   if ( ok )
   {
@@ -147,10 +167,11 @@ void QgsShadowEffect::readProperties( const QgsStringMap &props )
 
 QRectF QgsShadowEffect::boundingRect( const QRectF &rect, const QgsRenderContext &context ) const
 {
-  //offset distance
+  //blur radius and offset distance
+  int blurLevel = std::floor( context.convertToPainterUnits( mBlurLevel, mBlurUnit, mBlurMapUnitScale ) );
   double spread = context.convertToPainterUnits( mOffsetDist, mOffsetUnit, mOffsetMapUnitScale );
   //plus possible extension due to blur, with a couple of extra pixels thrown in for safety
-  spread += mBlurLevel * 2 + 10;
+  spread += blurLevel * 2 + 10;
   return rect.adjusted( -spread, -spread, spread, spread );
 }
 
diff --git a/src/core/effects/qgsshadoweffect.h b/src/core/effects/qgsshadoweffect.h
index 80bcf46dfb..c0fb0db665 100644
--- a/src/core/effects/qgsshadoweffect.h
+++ b/src/core/effects/qgsshadoweffect.h
@@ -42,20 +42,64 @@ class CORE_EXPORT QgsShadowEffect : public QgsPaintEffect
     void readProperties( const QgsStringMap &props ) override;
 
     /**
-     * Sets blur level (strength) for the shadow.
-     * \param level blur level. Values between 0 and 16 are valid, with larger
+     * Sets blur level (radius) for the shadow.
+     * \param level blur level.
      * values indicating greater blur strength.
      * \see blurLevel
+     * \see setBlurUnit
+     * \see setBlurMapUnitScale
      */
-    void setBlurLevel( const int level ) { mBlurLevel = level; }
+    void setBlurLevel( const double level ) { mBlurLevel = level; }
 
     /**
-     * Returns the blur level (strength) for the shadow.
-     * \returns blur level. Value will be between 0 and 16, with larger
+     * Returns the blur level (radius) for the shadow.
+     * \returns blur level.
      * values indicating greater blur strength.
      * \see setBlurLevel
+     * \see blurUnit
+     * \see blurMapUnitScale
      */
-    int blurLevel() const { return mBlurLevel; }
+    double blurLevel() const { return mBlurLevel; }
+
+    /**
+     * Sets the units used for the shadow blur level (radius).
+     * \param unit units for blur level
+     * \see blurUnit
+     * \see setBlurLevel
+     * \see setBlurMapUnitScale
+     * \since QGIS 3.4.9
+     */
+    void setBlurUnit( const QgsUnitTypes::RenderUnit unit ) { mBlurUnit = unit; }
+
+    /**
+     * Returns the units used for the shadow blur level (radius).
+     * \returns units for blur level
+     * \see setBlurUnit
+     * \see blurLevel
+     * \see blurMapUnitScale
+     * \since QGIS 3.4.9
+     */
+    QgsUnitTypes::RenderUnit blurUnit() const { return mBlurUnit; }
+
+    /**
+     * Sets the map unit scale used for the shadow blur strength (radius).
+     * \param scale map unit scale for blur strength
+     * \see blurMapUnitScale
+     * \see setBlurLevel
+     * \see setBlurUnit
+     * \since QGIS 3.4.9
+     */
+    void setBlurMapUnitScale( const QgsMapUnitScale &scale ) { mBlurMapUnitScale = scale; }
+
+    /**
+     * Returns the map unit scale used for the shadow blur strength (radius).
+     * \returns map unit scale for blur strength
+     * \see setBlurMapUnitScale
+     * \see blurLevel
+     * \see blurUnit
+     * \since QGIS 3.4.9
+     */
+    const QgsMapUnitScale &blurMapUnitScale() const { return mBlurMapUnitScale; }
 
     /**
      * Sets the angle for offsetting the shadow.
@@ -186,7 +230,9 @@ class CORE_EXPORT QgsShadowEffect : public QgsPaintEffect
      */
     virtual bool exteriorShadow() const = 0;
 
-    int mBlurLevel = 10;
+    double mBlurLevel = 2.645;
+    QgsUnitTypes::RenderUnit mBlurUnit = QgsUnitTypes::RenderMillimeters;
+    QgsMapUnitScale mBlurMapUnitScale;
     int mOffsetAngle = 135;
     double mOffsetDist = 2.0;
     QgsUnitTypes::RenderUnit mOffsetUnit = QgsUnitTypes::RenderMillimeters;
diff --git a/src/core/expression/qgsexpressionnodeimpl.cpp b/src/core/expression/qgsexpressionnodeimpl.cpp
index 6b838e78ad..b3d1429fce 100644
--- a/src/core/expression/qgsexpressionnodeimpl.cpp
+++ b/src/core/expression/qgsexpressionnodeimpl.cpp
@@ -1170,6 +1170,8 @@ QString QgsExpressionNodeLiteral::dump() const
       return QString::number( mValue.toInt() );
     case QVariant::Double:
       return QString::number( mValue.toDouble() );
+    case QVariant::LongLong:
+      return QString::number( mValue.toLongLong() );
     case QVariant::String:
       return QgsExpression::quotedString( mValue.toString() );
     case QVariant::Bool:
diff --git a/src/core/geometry/qgsgeometry.cpp b/src/core/geometry/qgsgeometry.cpp
index 100623980b..8752f079a0 100644
--- a/src/core/geometry/qgsgeometry.cpp
+++ b/src/core/geometry/qgsgeometry.cpp
@@ -253,7 +253,17 @@ QgsGeometry QgsGeometry::collectGeometry( const QVector< QgsGeometry > &geometri
     }
     else
     {
-      collected.addPart( g );
+      if ( g.isMultipart() )
+      {
+        for ( auto p = g.const_parts_begin(); p != g.const_parts_end(); ++p )
+        {
+          collected.addPart( ( *p )->clone() );
+        }
+      }
+      else
+      {
+        collected.addPart( g );
+      }
     }
   }
   return collected;
diff --git a/src/core/geometry/qgsgeometryutils.cpp b/src/core/geometry/qgsgeometryutils.cpp
index 07dd5a3e7b..572f9709ae 100644
--- a/src/core/geometry/qgsgeometryutils.cpp
+++ b/src/core/geometry/qgsgeometryutils.cpp
@@ -327,10 +327,10 @@ bool QgsGeometryUtils::lineCircleIntersection( const QgsPointXY &center, const d
   const double dx = x2 - x1;
   const double dy = y2 - y1;
 
-  const double dr = std::sqrt( std::pow( dx, 2 ) + std::pow( dy, 2 ) );
+  const double dr2 = std::pow( dx, 2 ) + std::pow( dy, 2 );
   const double d = x1 * y2 - x2 * y1;
 
-  const double disc = std::pow( radius, 2 ) * std::pow( dr, 2 ) - std::pow( d, 2 );
+  const double disc = std::pow( radius, 2 ) * dr2 - std::pow( d, 2 );
 
   if ( disc < 0 )
   {
@@ -342,12 +342,14 @@ bool QgsGeometryUtils::lineCircleIntersection( const QgsPointXY &center, const d
     // two solutions
     const int sgnDy = dy < 0 ? -1 : 1;
 
-    const double ax = center.x() + ( d * dy + sgnDy * dx * std::sqrt( std::pow( radius, 2 ) * std::pow( dr, 2 ) - std::pow( d, 2 ) ) ) / ( std::pow( dr, 2 ) );
-    const double ay = center.y() + ( -d * dx + std::fabs( dy ) * std::sqrt( std::pow( radius, 2 ) * std::pow( dr, 2 ) - std::pow( d, 2 ) ) ) / ( std::pow( dr, 2 ) );
+    const double sqrDisc = std::sqrt( disc );
+
+    const double ax = center.x() + ( d * dy + sgnDy * dx * sqrDisc ) / dr2;
+    const double ay = center.y() + ( -d * dx + std::fabs( dy ) * sqrDisc ) / dr2;
     const QgsPointXY p1( ax, ay );
 
-    const double bx = center.x() + ( d * dy - sgnDy * dx * std::sqrt( std::pow( radius, 2 ) * std::pow( dr, 2 ) - std::pow( d, 2 ) ) ) / ( std::pow( dr, 2 ) );
-    const double by = center.y() + ( -d * dx - std::fabs( dy ) * std::sqrt( std::pow( radius, 2 ) * std::pow( dr, 2 ) - std::pow( d, 2 ) ) ) / ( std::pow( dr, 2 ) );
+    const double bx = center.x() + ( d * dy - sgnDy * dx * sqrDisc ) / dr2;
+    const double by = center.y() + ( -d * dx - std::fabs( dy ) * sqrDisc ) / dr2;
     const QgsPointXY p2( bx, by );
 
     // snap to nearest intersection
@@ -870,7 +872,8 @@ void QgsGeometryUtils::segmentizeArc( const QgsPoint &p1, const QgsPoint &p2, co
   if ( symmetric )
   {
     double angle = a3 - a1;
-    if ( angle < 0 ) angle += M_PI * 2;
+    // angle == 0 when full circle
+    if ( angle <= 0 ) angle += M_PI * 2;
 
     /* Number of segments in output */
     int segs = ceil( angle / increment );
@@ -879,7 +882,8 @@ void QgsGeometryUtils::segmentizeArc( const QgsPoint &p1, const QgsPoint &p2, co
   }
 
   /* Adjust a3 up so we can increment from a1 to a3 cleanly */
-  if ( a3 < a1 )
+  // a3 == a1 when full circle
+  if ( a3 <= a1 )
     a3 += 2.0 * M_PI;
   if ( a2 < a1 )
     a2 += 2.0 * M_PI;
diff --git a/src/core/layout/qgslayoutexporter.cpp b/src/core/layout/qgslayoutexporter.cpp
index 3a3ff8a78f..10f92d37f3 100644
--- a/src/core/layout/qgslayoutexporter.cpp
+++ b/src/core/layout/qgslayoutexporter.cpp
@@ -343,8 +343,8 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::exportToImage( const QString
 
   PageExportDetails pageDetails;
   pageDetails.directory = fi.path();
-  pageDetails.baseName = fi.baseName();
-  pageDetails.extension = fi.completeSuffix();
+  pageDetails.baseName = fi.completeBaseName();
+  pageDetails.extension = fi.suffix();
 
   LayoutContextPreviewSettingRestorer restorer( mLayout );
   ( void )restorer;
@@ -490,6 +490,8 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::exportToPdf( const QString &f
   ( void )contextRestorer;
   mLayout->renderContext().setDpi( settings.dpi );
 
+  mLayout->renderContext().setFlags( settings.flags );
+
   // If we are not printing as raster, temporarily disable advanced effects
   // as QPrinter does not support composition modes and can result
   // in items missing from the output
@@ -561,6 +563,8 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::exportToPdf( QgsAbstractLayou
     ( void )contextRestorer;
     iterator->layout()->renderContext().setDpi( settings.dpi );
 
+    iterator->layout()->renderContext().setFlags( settings.flags );
+
     // If we are not printing as raster, temporarily disable advanced effects
     // as QPrinter does not support composition modes and can result
     // in items missing from the output
@@ -671,6 +675,7 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::print( QPrinter &printer, con
   ( void )contextRestorer;
   mLayout->renderContext().setDpi( settings.dpi );
 
+  mLayout->renderContext().setFlags( settings.flags );
   // If we are not printing as raster, temporarily disable advanced effects
   // as QPrinter does not support composition modes and can result
   // in items missing from the output
@@ -730,6 +735,8 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::print( QgsAbstractLayoutItera
     ( void )contextRestorer;
     iterator->layout()->renderContext().setDpi( settings.dpi );
 
+    iterator->layout()->renderContext().setFlags( settings.flags );
+
     // If we are not printing as raster, temporarily disable advanced effects
     // as QPrinter does not support composition modes and can result
     // in items missing from the output
@@ -784,6 +791,7 @@ QgsLayoutExporter::ExportResult QgsLayoutExporter::exportToSvg( const QString &f
   ( void )contextRestorer;
   mLayout->renderContext().setDpi( settings.dpi );
 
+  mLayout->renderContext().setFlags( settings.flags );
   mLayout->renderContext().setFlag( QgsLayoutRenderContext::FlagForceVectorOutput, settings.forceVectorOutput );
   mLayout->renderContext().setTextRenderFormat( s.textRenderFormat );
 
diff --git a/src/core/layout/qgslayoutitemattributetable.cpp b/src/core/layout/qgslayoutitemattributetable.cpp
index 031decf3ee..b4bc414fff 100644
--- a/src/core/layout/qgslayoutitemattributetable.cpp
+++ b/src/core/layout/qgslayoutitemattributetable.cpp
@@ -28,6 +28,7 @@
 #include "qgsgeometry.h"
 #include "qgsexception.h"
 #include "qgsmapsettings.h"
+#include "qgsgeometryengine.h"
 
 //QgsLayoutAttributeTableCompare
 
@@ -182,10 +183,15 @@ void QgsLayoutItemAttributeTable::atlasLayerChanged( QgsVectorLayer *layer )
     disconnect( mCurrentAtlasLayer, &QgsVectorLayer::layerModified, this, &QgsLayoutTable::refreshAttributes );
   }
 
+  const bool mustRebuildColumns = static_cast< bool >( mCurrentAtlasLayer ) || mColumns.empty();
   mCurrentAtlasLayer = layer;
 
-  //rebuild column list to match all columns from layer
-  resetColumns();
+  if ( mustRebuildColumns )
+  {
+    //rebuild column list to match all columns from layer
+    resetColumns();
+  }
+
   refreshAttributes();
 
   //listen for modifications to layer and refresh table when they occur
@@ -230,12 +236,14 @@ void QgsLayoutItemAttributeTable::setMap( QgsLayoutItemMap *map )
   {
     //disconnect from previous map
     disconnect( mMap, &QgsLayoutItemMap::extentChanged, this, &QgsLayoutTable::refreshAttributes );
+    disconnect( mMap, &QgsLayoutItemMap::mapRotationChanged, this, &QgsLayoutTable::refreshAttributes );
   }
   mMap = map;
   if ( mMap )
   {
     //listen out for extent changes in linked map
     connect( mMap, &QgsLayoutItemMap::extentChanged, this, &QgsLayoutTable::refreshAttributes );
+    connect( mMap, &QgsLayoutItemMap::mapRotationChanged, this, &QgsLayoutTable::refreshAttributes );
   }
   refreshAttributes();
   emit changed();
@@ -416,9 +424,12 @@ bool QgsLayoutItemAttributeTable::getTableContents( QgsLayoutTableContents &cont
   }
 
   QgsRectangle selectionRect;
+  QgsGeometry visibleRegion;
+  std::unique_ptr< QgsGeometryEngine > visibleMapEngine;
   if ( mMap && mShowOnlyVisibleFeatures )
   {
-    selectionRect = mMap->extent();
+    visibleRegion = QgsGeometry::fromQPolygonF( mMap->visibleExtentPolygon() );
+    selectionRect = visibleRegion.boundingBox();
     if ( layer )
     {
       //transform back to layer CRS
@@ -426,13 +437,37 @@ bool QgsLayoutItemAttributeTable::getTableContents( QgsLayoutTableContents &cont
       try
       {
         selectionRect = coordTransform.transformBoundingBox( selectionRect, QgsCoordinateTransform::ReverseTransform );
+        visibleRegion.transform( coordTransform, QgsCoordinateTransform::ReverseTransform );
       }
       catch ( QgsCsException &cse )
       {
-        Q_UNUSED( cse );
+        Q_UNUSED( cse )
         return false;
       }
     }
+    visibleMapEngine.reset( QgsGeometry::createGeometryEngine( visibleRegion.constGet() ) );
+    visibleMapEngine->prepareGeometry();
+  }
+
+  QgsGeometry atlasGeometry;
+  std::unique_ptr< QgsGeometryEngine > atlasGeometryEngine;
+  if ( mFilterToAtlasIntersection )
+  {
+    atlasGeometry = mLayout->reportContext().currentGeometry( layer->crs() );
+    if ( !atlasGeometry.isNull() )
+    {
+      if ( selectionRect.isNull() )
+      {
+        selectionRect = atlasGeometry.boundingBox();
+      }
+      else
+      {
+        selectionRect = selectionRect.intersect( atlasGeometry.boundingBox() );
+      }
+
+      atlasGeometryEngine.reset( QgsGeometry::createGeometryEngine( atlasGeometry.constGet() ) );
+      atlasGeometryEngine->prepareGeometry();
+    }
   }
 
   if ( mSource == QgsLayoutItemAttributeTable::RelationChildren )
@@ -471,23 +506,31 @@ bool QgsLayoutItemAttributeTable::getTableContents( QgsLayoutTableContents &cont
         continue;
       }
     }
+
+    // check against exact map bounds
+    if ( visibleMapEngine )
+    {
+      if ( !f.hasGeometry() )
+        continue;
+
+      if ( !visibleMapEngine->intersects( f.geometry().constGet() ) )
+        continue;
+    }
+
     //check against atlas feature intersection
     if ( mFilterToAtlasIntersection )
     {
-      if ( !f.hasGeometry() )
+      if ( !f.hasGeometry() || !atlasGeometryEngine )
       {
         continue;
       }
-      QgsFeature atlasFeature = mLayout->reportContext().feature();
-      if ( !atlasFeature.hasGeometry() ||
-           !f.geometry().intersects( atlasFeature.geometry() ) )
-      {
-        //feature falls outside current atlas feature
+
+      if ( !atlasGeometryEngine->intersects( f.geometry().constGet() ) )
         continue;
-      }
     }
 
     QgsLayoutTableRow currentRow;
+    currentRow.reserve( mColumns.count() );
 
     for ( QgsLayoutTableColumn *column : qgis::as_const( mColumns ) )
     {
@@ -550,6 +593,7 @@ void QgsLayoutItemAttributeTable::finalizeRestoreFromXml()
     {
       //if we have found a valid map item, listen out to extent changes on it and refresh the table
       connect( mMap, &QgsLayoutItemMap::extentChanged, this, &QgsLayoutTable::refreshAttributes );
+      connect( mMap, &QgsLayoutItemMap::mapRotationChanged, this, &QgsLayoutTable::refreshAttributes );
     }
   }
 }
@@ -647,6 +691,7 @@ QVector<QPair<int, bool> > QgsLayoutItemAttributeTable::sortAttributes() const
 
   //generate list of column index, bool for sort direction (to match 2.0 api)
   QVector<QPair<int, bool> > attributesBySortRank;
+  attributesBySortRank.reserve( sortedColumns.size() );
   for ( auto &column : qgis::as_const( sortedColumns ) )
   {
     attributesBySortRank.append( qMakePair( column.first,
@@ -730,6 +775,7 @@ bool QgsLayoutItemAttributeTable::readPropertiesFromElement( const QDomElement &
   if ( mMap )
   {
     disconnect( mMap, &QgsLayoutItemMap::extentChanged, this, &QgsLayoutTable::refreshAttributes );
+    disconnect( mMap, &QgsLayoutItemMap::mapRotationChanged, this, &QgsLayoutTable::refreshAttributes );
     mMap = nullptr;
   }
   // setting new mMap occurs in finalizeRestoreFromXml
diff --git a/src/core/layout/qgslayoutitemlabel.cpp b/src/core/layout/qgslayoutitemlabel.cpp
index 2d3b7192d8..989314e746 100644
--- a/src/core/layout/qgslayoutitemlabel.cpp
+++ b/src/core/layout/qgslayoutitemlabel.cpp
@@ -363,6 +363,7 @@ bool QgsLayoutItemLabel::writePropertiesToElement( QDomElement &layoutLabelElem,
   fontColorElem.setAttribute( QStringLiteral( "red" ), mFontColor.red() );
   fontColorElem.setAttribute( QStringLiteral( "green" ), mFontColor.green() );
   fontColorElem.setAttribute( QStringLiteral( "blue" ), mFontColor.blue() );
+  fontColorElem.setAttribute( QStringLiteral( "alpha" ), mFontColor.alpha() );
   layoutLabelElem.appendChild( fontColorElem );
 
   return true;
@@ -408,7 +409,8 @@ bool QgsLayoutItemLabel::readPropertiesFromElement( const QDomElement &itemElem,
     int red = fontColorElem.attribute( QStringLiteral( "red" ), QStringLiteral( "0" ) ).toInt();
     int green = fontColorElem.attribute( QStringLiteral( "green" ), QStringLiteral( "0" ) ).toInt();
     int blue = fontColorElem.attribute( QStringLiteral( "blue" ), QStringLiteral( "0" ) ).toInt();
-    mFontColor = QColor( red, green, blue );
+    int alpha = fontColorElem.attribute( QStringLiteral( "alpha" ), QStringLiteral( "255" ) ).toInt();
+    mFontColor = QColor( red, green, blue, alpha );
   }
   else
   {
@@ -580,7 +582,7 @@ QUrl QgsLayoutItemLabel::createStylesheetUrl() const
   QString stylesheet;
   stylesheet += QStringLiteral( "body { margin: %1 %2;" ).arg( std::max( mMarginY * mHtmlUnitsToLayoutUnits, 0.0 ) ).arg( std::max( mMarginX * mHtmlUnitsToLayoutUnits, 0.0 ) );
   stylesheet += QgsFontUtils::asCSS( mFont, 0.352778 * mHtmlUnitsToLayoutUnits );
-  stylesheet += QStringLiteral( "color: %1;" ).arg( mFontColor.name() );
+  stylesheet += QStringLiteral( "color: rgba(%1,%2,%3,%4);" ).arg( mFontColor.red() ).arg( mFontColor.green() ).arg( mFontColor.blue() ).arg( QString::number( mFontColor.alphaF(), 'f', 4 ) );
   stylesheet += QStringLiteral( "text-align: %1; }" ).arg( mHAlignment == Qt::AlignLeft ? QStringLiteral( "left" ) : mHAlignment == Qt::AlignRight ? QStringLiteral( "right" ) : mHAlignment == Qt::AlignHCenter ? QStringLiteral( "center" ) : QStringLiteral( "justify" ) );
 
   QByteArray ba;
diff --git a/src/core/layout/qgslayoutmultiframe.cpp b/src/core/layout/qgslayoutmultiframe.cpp
index 3fdb5124fa..22a2817d01 100644
--- a/src/core/layout/qgslayoutmultiframe.cpp
+++ b/src/core/layout/qgslayoutmultiframe.cpp
@@ -385,20 +385,23 @@ void QgsLayoutMultiFrame::handlePageChange()
     }
   }
 
-  //page number of the last item
-  QgsLayoutFrame *lastFrame = mFrameItems.last();
-  int lastItemPage = mLayout->pageCollection()->predictPageNumberForPoint( lastFrame->pos() );
-
-  for ( int i = lastItemPage + 1; i < mLayout->pageCollection()->pageCount(); ++i )
+  if ( !mFrameItems.empty() )
   {
-    //copy last frame to current page
-    std::unique_ptr< QgsLayoutFrame > newFrame = qgis::make_unique< QgsLayoutFrame >( mLayout, this );
-
-    newFrame->attemptSetSceneRect( QRectF( lastFrame->pos().x(),
-                                           mLayout->pageCollection()->page( i )->pos().y() + lastFrame->pagePos().y(),
-                                           lastFrame->rect().width(), lastFrame->rect().height() ) );
-    lastFrame = newFrame.get();
-    addFrame( newFrame.release(), false );
+    //page number of the last item
+    QgsLayoutFrame *lastFrame = mFrameItems.last();
+    int lastItemPage = mLayout->pageCollection()->predictPageNumberForPoint( lastFrame->pos() );
+
+    for ( int i = lastItemPage + 1; i < mLayout->pageCollection()->pageCount(); ++i )
+    {
+      //copy last frame to current page
+      std::unique_ptr< QgsLayoutFrame > newFrame = qgis::make_unique< QgsLayoutFrame >( mLayout, this );
+
+      newFrame->attemptSetSceneRect( QRectF( lastFrame->pos().x(),
+                                             mLayout->pageCollection()->page( i )->pos().y() + lastFrame->pagePos().y(),
+                                             lastFrame->rect().width(), lastFrame->rect().height() ) );
+      lastFrame = newFrame.get();
+      addFrame( newFrame.release(), false );
+    }
   }
 
   recalculateFrameSizes();
diff --git a/src/core/pal/feature.cpp b/src/core/pal/feature.cpp
index f749fe5a65..21f658fd71 100644
--- a/src/core/pal/feature.cpp
+++ b/src/core/pal/feature.cpp
@@ -597,7 +597,7 @@ int FeaturePart::createCandidatesAlongLineNearStraightSegments( QList<LabelPosit
   double labelWidth = getLabelWidth();
   double labelHeight = getLabelHeight();
   double distanceLineToLabel = getLabelDistance();
-  LineArrangementFlags flags = mLF->layer()->arrangementFlags();
+  LineArrangementFlags flags = mLF->arrangementFlags();
   if ( flags == 0 )
     flags = FLAG_ON_LINE; // default flag
 
@@ -771,27 +771,29 @@ int FeaturePart::createCandidatesAlongLineNearStraightSegments( QList<LabelPosit
         bool aboveLine = ( !reversed && ( flags & FLAG_ABOVE_LINE ) ) || ( reversed && ( flags & FLAG_BELOW_LINE ) );
         bool belowLine = ( !reversed && ( flags & FLAG_BELOW_LINE ) ) || ( reversed && ( flags & FLAG_ABOVE_LINE ) );
 
-        double placementCost = 0.0;
         if ( belowLine )
         {
           if ( !mLF->permissibleZonePrepared() || GeomFunction::containsCandidate( mLF->permissibleZonePrepared(), candidateStartX - std::cos( beta ) * ( distanceLineToLabel + labelHeight ), candidateStartY - std::sin( beta ) * ( distanceLineToLabel + labelHeight ), labelWidth, labelHeight, angle ) )
           {
-            lPos.append( new LabelPosition( i, candidateStartX - std::cos( beta ) * ( distanceLineToLabel + labelHeight ), candidateStartY - std::sin( beta ) * ( distanceLineToLabel + labelHeight ), labelWidth, labelHeight, angle, cost + placementCost, this, isRightToLeft ) ); // Line
-            placementCost += 0.001;
+            const double candidateCost = cost + ( reversed ? 0 : 0.001 );
+            lPos.append( new LabelPosition( i, candidateStartX - std::cos( beta ) * ( distanceLineToLabel + labelHeight ), candidateStartY - std::sin( beta ) * ( distanceLineToLabel + labelHeight ), labelWidth, labelHeight, angle, candidateCost, this, isRightToLeft ) ); // Line
           }
         }
         if ( aboveLine )
         {
           if ( !mLF->permissibleZonePrepared() || GeomFunction::containsCandidate( mLF->permissibleZonePrepared(), candidateStartX + std::cos( beta ) *distanceLineToLabel, candidateStartY + std::sin( beta ) *distanceLineToLabel, labelWidth, labelHeight, angle ) )
           {
-            lPos.append( new LabelPosition( i, candidateStartX + std::cos( beta ) *distanceLineToLabel, candidateStartY + std::sin( beta ) *distanceLineToLabel, labelWidth, labelHeight, angle, cost + placementCost, this, isRightToLeft ) ); // Line
-            placementCost += 0.001;
+            const double candidateCost = cost + ( !reversed ? 0 : 0.001 ); // no extra cost for above line placements
+            lPos.append( new LabelPosition( i, candidateStartX + std::cos( beta ) *distanceLineToLabel, candidateStartY + std::sin( beta ) *distanceLineToLabel, labelWidth, labelHeight, angle, candidateCost, this, isRightToLeft ) ); // Line
           }
         }
         if ( flags & FLAG_ON_LINE )
         {
           if ( !mLF->permissibleZonePrepared() || GeomFunction::containsCandidate( mLF->permissibleZonePrepared(), candidateStartX - labelHeight * std::cos( beta ) / 2, candidateStartY - labelHeight * std::sin( beta ) / 2, labelWidth, labelHeight, angle ) )
-            lPos.append( new LabelPosition( i, candidateStartX - labelHeight * std::cos( beta ) / 2, candidateStartY - labelHeight * std::sin( beta ) / 2, labelWidth, labelHeight, angle, cost + placementCost, this, isRightToLeft ) ); // Line
+          {
+            const double candidateCost = cost + 0.002;
+            lPos.append( new LabelPosition( i, candidateStartX - labelHeight * std::cos( beta ) / 2, candidateStartY - labelHeight * std::sin( beta ) / 2, labelWidth, labelHeight, angle, candidateCost, this, isRightToLeft ) ); // Line
+          }
         }
       }
       else if ( mLF->layer()->arrangement() == QgsPalLayerSettings::Horizontal )
@@ -822,7 +824,7 @@ int FeaturePart::createCandidatesAlongLineNearMidpoint( QList<LabelPosition *> &
   double angle;
   double cost;
 
-  LineArrangementFlags flags = mLF->layer()->arrangementFlags();
+  LineArrangementFlags flags = mLF->arrangementFlags();
   if ( flags == 0 )
     flags = FLAG_ON_LINE; // default flag
 
@@ -924,17 +926,26 @@ int FeaturePart::createCandidatesAlongLineNearMidpoint( QList<LabelPosition *> &
       if ( aboveLine )
       {
         if ( !mLF->permissibleZonePrepared() || GeomFunction::containsCandidate( mLF->permissibleZonePrepared(), candidateStartX + std::cos( beta ) *distanceLineToLabel, candidateStartY + std::sin( beta ) *distanceLineToLabel, labelWidth, labelHeight, angle ) )
-          positions.append( new LabelPosition( i, candidateStartX + std::cos( beta ) *distanceLineToLabel, candidateStartY + std::sin( beta ) *distanceLineToLabel, labelWidth, labelHeight, angle, cost, this, isRightToLeft ) ); // Line
+        {
+          const double candidateCost = cost + ( !reversed ? 0 : 0.001 ); // no extra cost for above line placements
+          positions.append( new LabelPosition( i, candidateStartX + std::cos( beta ) *distanceLineToLabel, candidateStartY + std::sin( beta ) *distanceLineToLabel, labelWidth, labelHeight, angle, candidateCost, this, isRightToLeft ) ); // Line
+        }
       }
       if ( belowLine )
       {
         if ( !mLF->permissibleZonePrepared() || GeomFunction::containsCandidate( mLF->permissibleZonePrepared(), candidateStartX - std::cos( beta ) * ( distanceLineToLabel + labelHeight ), candidateStartY - std::sin( beta ) * ( distanceLineToLabel + labelHeight ), labelWidth, labelHeight, angle ) )
-          positions.append( new LabelPosition( i, candidateStartX - std::cos( beta ) * ( distanceLineToLabel + labelHeight ), candidateStartY - std::sin( beta ) * ( distanceLineToLabel + labelHeight ), labelWidth, labelHeight, angle, cost, this, isRightToLeft ) ); // Line
+        {
+          const double candidateCost = cost + ( !reversed ? 0.001 : 0 );
+          positions.append( new LabelPosition( i, candidateStartX - std::cos( beta ) * ( distanceLineToLabel + labelHeight ), candidateStartY - std::sin( beta ) * ( distanceLineToLabel + labelHeight ), labelWidth, labelHeight, angle, candidateCost, this, isRightToLeft ) ); // Line
+        }
       }
       if ( flags & FLAG_ON_LINE )
       {
         if ( !mLF->permissibleZonePrepared() || GeomFunction::containsCandidate( mLF->permissibleZonePrepared(), candidateStartX - labelHeight * std::cos( beta ) / 2, candidateStartY - labelHeight * std::sin( beta ) / 2, labelWidth, labelHeight, angle ) )
-          positions.append( new LabelPosition( i, candidateStartX - labelHeight * std::cos( beta ) / 2, candidateStartY - labelHeight * std::sin( beta ) / 2, labelWidth, labelHeight, angle, cost, this, isRightToLeft ) ); // Line
+        {
+          const double candidateCost = cost + 0.002;
+          positions.append( new LabelPosition( i, candidateStartX - labelHeight * std::cos( beta ) / 2, candidateStartY - labelHeight * std::sin( beta ) / 2, labelWidth, labelHeight, angle, candidateCost, this, isRightToLeft ) ); // Line
+        }
       }
     }
     else if ( mLF->layer()->arrangement() == QgsPalLayerSettings::Horizontal )
@@ -964,24 +975,14 @@ int FeaturePart::createCandidatesAlongLineNearMidpoint( QList<LabelPosition *> &
 }
 
 
-LabelPosition *FeaturePart::curvedPlacementAtOffset( PointSet *path_positions, double *path_distances, int &orientation, int index, double distance, bool &reversed, bool &flip )
+LabelPosition *FeaturePart::curvedPlacementAtOffset( PointSet *path_positions, double *path_distances, int &orientation, const double offsetAlongLine, bool &reversed, bool &flip )
 {
-  // Check that the given distance is on the given index and find the correct index and distance if not
-  while ( distance < 0 && index > 1 )
+  double offsetAlongSegment = offsetAlongLine;
+  int index = 1;
+  // Find index of segment corresponding to starting offset
+  while ( index < path_positions->nbPoints && offsetAlongSegment > path_distances[index] )
   {
-    index--;
-    distance += path_distances[index];
-  }
-
-  if ( index <= 1 && distance < 0 ) // We've gone off the start, fail out
-  {
-    return nullptr;
-  }
-
-  // Same thing, checking if we go off the end
-  while ( index < path_positions->nbPoints && distance > path_distances[index] )
-  {
-    distance -= path_distances[index];
+    offsetAlongSegment -= path_distances[index];
     index += 1;
   }
   if ( index >= path_positions->nbPoints )
@@ -993,7 +994,7 @@ LabelPosition *FeaturePart::curvedPlacementAtOffset( PointSet *path_positions, d
 
   double string_height = li->label_height;
 
-  double segment_length = path_distances[index];
+  const double segment_length = path_distances[index];
   if ( qgsDoubleNear( segment_length, 0.0 ) )
   {
     // Not allowed to place across on 0 length segments or discontinuities
@@ -1004,25 +1005,34 @@ LabelPosition *FeaturePart::curvedPlacementAtOffset( PointSet *path_positions, d
   {
     // Calculate the orientation based on the angle of the path segment under consideration
 
-    double _distance = distance;
+    double _distance = offsetAlongSegment;
     int endindex = index;
 
+    double startLabelX = 0;
+    double startLabelY = 0;
+    double endLabelX = 0;
+    double endLabelY = 0;
     for ( int i = 0; i < li->char_num; i++ )
     {
       LabelInfo::CharacterInfo &ci = li->char_info[i];
-      double start_x, start_y, end_x, end_y;
-      if ( !nextCharPosition( ci.width, path_distances[index], path_positions, endindex, _distance, start_x, start_y, end_x, end_y ) )
+      double characterStartX, characterStartY;
+      if ( !nextCharPosition( ci.width, path_distances[endindex], path_positions, endindex, _distance, characterStartX, characterStartY, endLabelX, endLabelY ) )
       {
         return nullptr;
       }
+      if ( i == 0 )
+      {
+        startLabelX = characterStartX;
+        startLabelY = characterStartY;
+      }
     }
 
     // Determine the angle of the path segment under consideration
-    double dx = path_positions->x[endindex] - path_positions->x[index];
-    double dy = path_positions->y[endindex] - path_positions->y[index];
-    double line_angle = std::atan2( -dy, dx );
+    double dx = endLabelX - startLabelX;
+    double dy = endLabelY - startLabelY;
+    const double lineAngle = std::atan2( -dy, dx ) * 180 / M_PI;
 
-    bool isRightToLeft = ( line_angle > 0.55 * M_PI || line_angle < -0.45 * M_PI );
+    bool isRightToLeft = ( lineAngle > 90 || lineAngle < -90 );
     reversed = isRightToLeft;
     orientation = isRightToLeft ? -1 : 1;
   }
@@ -1062,7 +1072,7 @@ LabelPosition *FeaturePart::curvedPlacementAtOffset( PointSet *path_positions, d
       continue;
 
     double start_x, start_y, end_x, end_y;
-    if ( !nextCharPosition( ci.width, path_distances[index], path_positions, index, distance, start_x, start_y, end_x, end_y ) )
+    if ( !nextCharPosition( ci.width, path_distances[index], path_positions, index, offsetAlongSegment, start_x, start_y, end_x, end_y ) )
     {
       delete slp;
       return nullptr;
@@ -1130,7 +1140,6 @@ LabelPosition *FeaturePart::curvedPlacementAtOffset( PointSet *path_positions, d
     if ( render_angle > M_PI_2 && render_angle < 1.5 * M_PI )
       slp->incrementUpsideDownCharCount();
   }
-  // END FOR
 
   return slp;
 }
@@ -1151,7 +1160,7 @@ int FeaturePart::createCurvedCandidatesAlongLine( QList< LabelPosition * > &lPos
     return 0;
 
   // distance calculation
-  double *path_distances = new double[mapShape->nbPoints];
+  std::unique_ptr< double [] > path_distances = qgis::make_unique<double[]>( mapShape->nbPoints );
   double total_distance = 0;
   double old_x = -1.0, old_y = -1.0;
   for ( int i = 0; i < mapShape->nbPoints; i++ )
@@ -1168,19 +1177,29 @@ int FeaturePart::createCurvedCandidatesAlongLine( QList< LabelPosition * > &lPos
 
   if ( qgsDoubleNear( total_distance, 0.0 ) )
   {
-    delete[] path_distances;
+    return 0;
+  }
+
+  double totalCharacterWidth = 0;
+  for ( int i = 0; i < li->char_num; ++i )
+    totalCharacterWidth += li->char_info[ i ].width;
+
+  if ( totalCharacterWidth > total_distance )
+  {
+    // label doesn't fit on this line, don't waste time trying to make candidates
+    // TODO: in future allow this, and allow label to overlap end of line
     return 0;
   }
 
   QLinkedList<LabelPosition *> positions;
   double delta = std::max( li->label_height, total_distance / mLF->layer()->pal->line_p );
 
-  unsigned long flags = mLF->layer()->arrangementFlags();
+  pal::LineArrangementFlags flags = mLF->arrangementFlags();
   if ( flags == 0 )
     flags = FLAG_ON_LINE; // default flag
 
   // generate curved labels
-  for ( double i = 0; i < total_distance; i += delta )
+  for ( double distanceAlongLineToStartCandidate = 0; distanceAlongLineToStartCandidate < total_distance; distanceAlongLineToStartCandidate += delta )
   {
     bool flip = false;
     // placements may need to be reversed if using map orientation and the line has right-to-left direction
@@ -1195,7 +1214,7 @@ int FeaturePart::createCurvedCandidatesAlongLine( QList< LabelPosition * > &lPos
       orientation = 1;
     }
 
-    LabelPosition *slp = curvedPlacementAtOffset( mapShape, path_distances, orientation, 1, i, reversed, flip );
+    LabelPosition *slp = curvedPlacementAtOffset( mapShape, path_distances.get(), orientation, distanceAlongLineToStartCandidate, reversed, flip );
     if ( !slp )
       continue;
 
@@ -1207,7 +1226,7 @@ int FeaturePart::createCurvedCandidatesAlongLine( QList< LabelPosition * > &lPos
       {
         delete slp;
         orientation = -orientation;
-        slp = curvedPlacementAtOffset( mapShape, path_distances, orientation, 1, i, reversed, flip );
+        slp = curvedPlacementAtOffset( mapShape, path_distances.get(), orientation, distanceAlongLineToStartCandidate, reversed, flip );
       }
     }
     if ( !slp )
@@ -1238,9 +1257,9 @@ int FeaturePart::createCurvedCandidatesAlongLine( QList< LabelPosition * > &lPos
     if ( cost < 0.0001 ) cost = 0.0001;
 
     // penalize positions which are further from the line's midpoint
-    double labelCenter = i + getLabelWidth() / 2;
+    double labelCenter = distanceAlongLineToStartCandidate + getLabelWidth() / 2;
     double costCenter = std::fabs( total_distance / 2 - labelCenter ) / total_distance; // <0, 0.5>
-    cost += costCenter / 1000;  // < 0, 0.0005 >
+    cost += costCenter / 100;  // < 0, 0.005 >
     slp->setCost( cost );
 
     // average angle is calculated with respect to periodicity of angles
@@ -1293,8 +1312,6 @@ int FeaturePart::createCurvedCandidatesAlongLine( QList< LabelPosition * > &lPos
     lPos << positions.takeFirst();
   }
 
-  delete[] path_distances;
-
   return nbp;
 }
 
@@ -1747,38 +1764,38 @@ bool FeaturePart::showUprightLabels() const
   return uprightLabel;
 }
 
-bool FeaturePart::nextCharPosition( double charWidth, double segment_length, PointSet *path_positions, int &index, double &distance,
-                                    double &start_x, double &start_y, double &end_x, double &end_y ) const
+bool FeaturePart::nextCharPosition( double charWidth, double segmentLength, PointSet *path_positions, int &index, double &currentDistanceAlongSegment,
+                                    double &characterStartX, double &characterStartY, double &characterEndX, double &characterEndY ) const
 {
   // Coordinates this character will start at
-  if ( qgsDoubleNear( segment_length, 0.0 ) )
+  if ( qgsDoubleNear( segmentLength, 0.0 ) )
   {
     // Not allowed to place across on 0 length segments or discontinuities
     return false;
   }
 
-  double old_x = path_positions->x[index - 1];
-  double old_y = path_positions->y[index - 1];
+  double segmentStartX = path_positions->x[index - 1];
+  double segmentStartY = path_positions->y[index - 1];
 
-  double new_x = path_positions->x[index];
-  double new_y = path_positions->y[index];
+  double segmentEndX = path_positions->x[index];
+  double segmentEndY = path_positions->y[index];
 
-  double dx = new_x - old_x;
-  double dy = new_y - old_y;
+  double segmentDx = segmentEndX - segmentStartX;
+  double segmentDy = segmentEndY - segmentStartY;
 
-  start_x = old_x + dx * distance / segment_length;
-  start_y = old_y + dy * distance / segment_length;
+  characterStartX = segmentStartX + segmentDx * currentDistanceAlongSegment / segmentLength;
+  characterStartY = segmentStartY + segmentDy * currentDistanceAlongSegment / segmentLength;
 
   // Coordinates this character ends at, calculated below
-  end_x = 0;
-  end_y = 0;
+  characterEndX = 0;
+  characterEndY = 0;
 
-  if ( segment_length - distance >= charWidth )
+  if ( segmentLength - currentDistanceAlongSegment >= charWidth )
   {
     // if the distance remaining in this segment is enough, we just go further along the segment
-    distance += charWidth;
-    end_x = old_x + dx * distance / segment_length;
-    end_y = old_y + dy * distance / segment_length;
+    currentDistanceAlongSegment += charWidth;
+    characterEndX = segmentStartX + segmentDx * currentDistanceAlongSegment / segmentLength;
+    characterEndY = segmentStartY + segmentDy * currentDistanceAlongSegment / segmentLength;
   }
   else
   {
@@ -1786,25 +1803,23 @@ bool FeaturePart::nextCharPosition( double charWidth, double segment_length, Poi
     // then we need to search until we find the line segment that ends further than ci.width away
     do
     {
-      old_x = new_x;
-      old_y = new_y;
+      segmentStartX = segmentEndX;
+      segmentStartY = segmentEndY;
       index++;
       if ( index >= path_positions->nbPoints ) // Bail out if we run off the end of the shape
       {
         return false;
       }
-      new_x = path_positions->x[index];
-      new_y = path_positions->y[index];
-      dx = new_x - old_x;
-      dy = new_y - old_y;
+      segmentEndX = path_positions->x[index];
+      segmentEndY = path_positions->y[index];
     }
-    while ( std::sqrt( std::pow( start_x - new_x, 2 ) + std::pow( start_y - new_y, 2 ) ) < charWidth ); // Distance from start_ to new_
+    while ( std::sqrt( std::pow( characterStartX - segmentEndX, 2 ) + std::pow( characterStartY - segmentEndY, 2 ) ) < charWidth ); // Distance from start_ to new_
 
     // Calculate the position to place the end of the character on
-    GeomFunction::findLineCircleIntersection( start_x, start_y, charWidth, old_x, old_y, new_x, new_y, end_x, end_y );
+    GeomFunction::findLineCircleIntersection( characterStartX, characterStartY, charWidth, segmentStartX, segmentStartY, segmentEndX, segmentEndY, characterEndX, characterEndY );
 
     // Need to calculate distance on the new segment
-    distance = std::sqrt( std::pow( old_x - end_x, 2 ) + std::pow( old_y - end_y, 2 ) );
+    currentDistanceAlongSegment = std::sqrt( std::pow( segmentStartX - characterEndX, 2 ) + std::pow( segmentStartY - characterEndY, 2 ) );
   }
   return true;
 }
diff --git a/src/core/pal/feature.h b/src/core/pal/feature.h
index 3ee43ccc3b..b86bc6d9c2 100644
--- a/src/core/pal/feature.h
+++ b/src/core/pal/feature.h
@@ -200,14 +200,13 @@ namespace pal
        * \param path_positions line path to place label on
        * \param path_distances array of distances to each segment on path
        * \param orientation can be 0 for automatic calculation of orientation, or -1/+1 for a specific label orientation
-       * \param index
        * \param distance distance to offset label along curve by
        * \param reversed if true label is reversed from lefttoright to righttoleft
        * \param flip if true label is placed on the other side of the line
        * \returns calculated label position
        */
       LabelPosition *curvedPlacementAtOffset( PointSet *path_positions, double *path_distances,
-                                              int &orientation, int index, double distance, bool &reversed, bool &flip );
+                                              int &orientation, double distance, bool &reversed, bool &flip );
 
       /**
        * Generate curved candidates for line features.
@@ -298,8 +297,8 @@ namespace pal
       bool showUprightLabels() const;
 
       //! Returns true if the next char position is found. The referenced parameters are updated.
-      bool nextCharPosition( double charWidth, double segment_length, PointSet *path_positions, int &index, double &distance,
-                             double &start_x, double &start_y, double &end_x, double &end_y ) const;
+      bool nextCharPosition( double charWidth, double segmentLength, PointSet *path_positions, int &index, double &currentDistanceAlongSegment,
+                             double &characterStartX, double &characterStartY, double &characterEndX, double &characterEndY ) const;
 
     protected:
 
diff --git a/src/core/pal/geomfunction.cpp b/src/core/pal/geomfunction.cpp
index 35328c6cd9..fc7dd77057 100644
--- a/src/core/pal/geomfunction.cpp
+++ b/src/core/pal/geomfunction.cpp
@@ -381,7 +381,7 @@ void GeomFunction::findLineCircleIntersection( double cx, double cy, double radi
   double C = ( x1 - cx ) * ( x1 - cx ) + ( y1 - cy ) * ( y1 - cy ) - radius * radius;
 
   double det = B * B - 4 * A * C;
-  if ( A <= 0.0000001 || det < 0 )
+  if ( A <= 0.000000000001 || det < 0 )
     // Should never happen, No real solutions.
     return;
 
diff --git a/src/core/pal/layer.cpp b/src/core/pal/layer.cpp
index eb179f8afd..574059658f 100644
--- a/src/core/pal/layer.cpp
+++ b/src/core/pal/layer.cpp
@@ -51,7 +51,6 @@ Layer::Layer( QgsAbstractLabelProvider *provider, const QString &name, QgsPalLay
   , mDisplayAll( displayAll )
   , mCentroidInside( false )
   , mArrangement( arrangement )
-  , mArrangementFlags( nullptr )
   , mMode( LabelPerFeature )
   , mMergeLines( false )
   , mUpsidedownLabels( Upright )
@@ -74,9 +73,6 @@ Layer::~Layer()
   qDeleteAll( mFeatureParts );
   qDeleteAll( mObstacleParts );
 
-  //should already be empty
-  qDeleteAll( mConnectedHashtable );
-
   delete mFeatureIndex;
   delete mObstacleIndex;
 
@@ -302,19 +298,7 @@ void Layer::addFeaturePart( FeaturePart *fpart, const QString &labelText )
   // add to hashtable with equally named feature parts
   if ( mMergeLines && !labelText.isEmpty() )
   {
-    QLinkedList< FeaturePart *> *lst;
-    if ( !mConnectedHashtable.contains( labelText ) )
-    {
-      // entry doesn't exist yet
-      lst = new QLinkedList<FeaturePart *>;
-      mConnectedHashtable.insert( labelText, lst );
-      mConnectedTexts << labelText;
-    }
-    else
-    {
-      lst = mConnectedHashtable.value( labelText );
-    }
-    lst->append( fpart ); // add to the list
+    mConnectedHashtable[ labelText ].append( fpart );
   }
 }
 
@@ -331,18 +315,18 @@ void Layer::addObstaclePart( FeaturePart *fpart )
   mObstacleIndex->Insert( bmin, bmax, fpart );
 }
 
-static FeaturePart *_findConnectedPart( FeaturePart *partCheck, QLinkedList<FeaturePart *> *otherParts )
+static FeaturePart *_findConnectedPart( FeaturePart *partCheck, const QVector<FeaturePart *> &otherParts )
 {
   // iterate in the rest of the parts with the same label
-  QLinkedList<FeaturePart *>::const_iterator p = otherParts->constBegin();
-  while ( p != otherParts->constEnd() )
+  auto it = otherParts.constBegin();
+  while ( it != otherParts.constEnd() )
   {
-    if ( partCheck->isConnected( *p ) )
+    if ( partCheck->isConnected( *it ) )
     {
       // stop checking for other connected parts
-      return *p;
+      return *it;
     }
-    ++p;
+    ++it;
   }
 
   return nullptr; // no connected part found...
@@ -352,20 +336,24 @@ void Layer::joinConnectedFeatures()
 {
   // go through all label texts
   int connectedFeaturesId = 0;
-  Q_FOREACH ( const QString &labelText, mConnectedTexts )
+  for ( auto it = mConnectedHashtable.constBegin(); it != mConnectedHashtable.constEnd(); ++it )
   {
-    if ( !mConnectedHashtable.contains( labelText ) )
-      continue; // shouldn't happen
-
+    const QString labelTExt = it.key();
+    QVector<FeaturePart *> parts = it.value();
     connectedFeaturesId++;
 
-    QLinkedList<FeaturePart *> *parts = mConnectedHashtable.value( labelText );
+    // need to start with biggest parts first, to avoid merging in side branches before we've
+    // merged the whole of the longest parts of the joined network
+    std::sort( parts.begin(), parts.end(), []( FeaturePart * a, FeaturePart * b )
+    {
+      return a->length() > b->length();
+    } );
 
     // go one-by-one part, try to merge
-    while ( !parts->isEmpty() && parts->count() > 1 )
+    while ( parts.count() > 1 )
     {
       // part we'll be checking against other in this round
-      FeaturePart *partCheck = parts->takeFirst();
+      FeaturePart *partCheck = parts.takeFirst();
 
       FeaturePart *otherPart = _findConnectedPart( partCheck, parts );
       if ( otherPart )
@@ -396,19 +384,9 @@ void Layer::joinConnectedFeatures()
         }
       }
     }
-
-    // we're done processing feature parts with this particular label text
-    delete parts;
-    mConnectedHashtable.remove( labelText );
   }
 
-  // we're done processing connected features
-
-  //should be empty, but clear to be safe
-  qDeleteAll( mConnectedHashtable );
   mConnectedHashtable.clear();
-
-  mConnectedTexts.clear();
 }
 
 int Layer::connectedFeatureId( QgsFeatureId featureId ) const
diff --git a/src/core/pal/layer.h b/src/core/pal/layer.h
index 898a9a07b5..bb5dadc634 100644
--- a/src/core/pal/layer.h
+++ b/src/core/pal/layer.h
@@ -113,19 +113,6 @@ namespace pal
        */
       void setArrangement( QgsPalLayerSettings::Placement arrangement ) { mArrangement = arrangement; }
 
-      /**
-       * Returns the layer's arrangement flags.
-       * \see setArrangementFlags
-       */
-      LineArrangementFlags arrangementFlags() const { return mArrangementFlags; }
-
-      /**
-       * Sets the layer's arrangement flags.
-       * \param flags arrangement flags
-       * \see arrangementFlags
-       */
-      void setArrangementFlags( LineArrangementFlags flags ) { mArrangementFlags = flags; }
-
       /**
        * \brief Sets whether the layer is currently active.
        *
@@ -290,7 +277,7 @@ namespace pal
 
       //! Optional flags used for some placement methods
       QgsPalLayerSettings::Placement mArrangement;
-      LineArrangementFlags mArrangementFlags;
+
       LabelMode mMode;
       bool mMergeLines;
 
@@ -304,8 +291,7 @@ namespace pal
       //obstacle r-tree
       RTree<FeaturePart *, double, 2, double, 8, 4> *mObstacleIndex;
 
-      QHash< QString, QLinkedList<FeaturePart *>* > mConnectedHashtable;
-      QStringList mConnectedTexts;
+      QHash< QString, QVector<FeaturePart *> > mConnectedHashtable;
       QHash< QgsFeatureId, int > mConnectedFeaturesIds;
 
       QMutex mMutex;
diff --git a/src/core/qgsapplication.cpp b/src/core/qgsapplication.cpp
index b31c4502f0..66dfdcf3b5 100644
--- a/src/core/qgsapplication.cpp
+++ b/src/core/qgsapplication.cpp
@@ -306,6 +306,16 @@ QgsApplication::~QgsApplication()
   delete mApplicationMembers;
   delete mQgisTranslator;
   delete mQtTranslator;
+
+  // invalidate coordinate cache while the PROJ context held by the thread-locale
+  // QgsProjContextStore object is still alive. Otherwise if this later object
+  // is destroyed before the static variables of the cache, we might use freed memory.
+
+  // we do this here as well as in exitQgis() -- it's safe to call as often as we want,
+  // and there's just a *chance* that in between an exitQgis call and this destructor
+  // something else's destructor has caused a new entry in the caches...
+  QgsCoordinateTransform::invalidateCache();
+  QgsCoordinateReferenceSystem::invalidateCache();
 }
 
 QgsApplication *QgsApplication::instance()
@@ -979,7 +989,7 @@ QString QgsApplication::userLoginName()
 
   if ( GetUserName( ( TCHAR * )name, &size ) )
   {
-    sUserName = QString( name );
+    sUserName = QString::fromLocal8Bit( name );
   }
 
 #else
@@ -1015,7 +1025,7 @@ QString QgsApplication::userFullName()
   //note - this only works for accounts connected to domain
   if ( GetUserNameEx( NameDisplay, ( TCHAR * )name, &size ) )
   {
-    sUserFullName = QString( name );
+    sUserFullName = QString::fromLocal8Bit( name );
   }
 
   //fall back to login name
@@ -1190,6 +1200,7 @@ void QgsApplication::exitQgis()
   // QgsProjContextStore object is still alive. Otherwise if this later object
   // is destroyed before the static variables of the cache, we might use freed memory.
   QgsCoordinateTransform::invalidateCache();
+  QgsCoordinateReferenceSystem::invalidateCache();
 
   QgsStyle::cleanDefaultStyle();
 
diff --git a/src/core/qgsattributeeditorelement.h b/src/core/qgsattributeeditorelement.h
index 15927a9d0a..ce564a13dc 100644
--- a/src/core/qgsattributeeditorelement.h
+++ b/src/core/qgsattributeeditorelement.h
@@ -68,7 +68,7 @@ class CORE_EXPORT QgsAttributeEditorElement SIP_ABSTRACT
     /**
      * Constructor
      *
-     * \param type The type of the new element. Should never
+     * \param type The type of the new element.
      * \param name
      * \param parent
      */
diff --git a/src/core/qgscolorramp.cpp b/src/core/qgscolorramp.cpp
index 51ad3e0a0a..02e2fd2401 100644
--- a/src/core/qgscolorramp.cpp
+++ b/src/core/qgscolorramp.cpp
@@ -551,7 +551,7 @@ double QgsColorBrewerColorRamp::value( int index ) const
 
 QColor QgsColorBrewerColorRamp::color( double value ) const
 {
-  if ( mPalette.isEmpty() || value < 0 || value > 1 )
+  if ( mPalette.isEmpty() || value < 0 || value > 1 || std::isnan( value ) )
     return QColor();
 
   int paletteEntry = static_cast< int >( value * mPalette.count() );
diff --git a/src/core/qgscoordinatereferencesystem.cpp b/src/core/qgscoordinatereferencesystem.cpp
index 82281690db..8472800183 100644
--- a/src/core/qgscoordinatereferencesystem.cpp
+++ b/src/core/qgscoordinatereferencesystem.cpp
@@ -1773,7 +1773,12 @@ bool QgsCoordinateReferenceSystem::loadIds( QHash<int, QString> &wkts )
 
   Q_FOREACH ( const QString &csv, QStringList() << "gcs.csv" << "pcs.csv" << "vertcs.csv" << "compdcs.csv" << "geoccs.csv" )
   {
-    QString filename = CPLFindFile( "gdal", csv.toUtf8() );
+
+#if GDAL_VERSION_NUM < GDAL_COMPUTE_VERSION(3,0,0)
+    const QString filename = CPLFindFile( "gdal", csv.toUtf8() );
+#else
+    const QString filename = QgsApplication::pkgDataPath() + QStringLiteral( "/resources/" ) + csv;
+#endif
 
     QFile f( filename );
     if ( !f.open( QIODevice::ReadOnly ) )
@@ -2159,8 +2164,13 @@ int QgsCoordinateReferenceSystem::syncDatabase()
 
 bool QgsCoordinateReferenceSystem::syncDatumTransform( const QString &dbPath )
 {
+#if GDAL_VERSION_NUM < GDAL_COMPUTE_VERSION(3,0,0)
   const char *filename = CSVFilename( "datum_shift.csv" );
   FILE *fp = VSIFOpen( filename, "rb" );
+#else
+  const QString filename = QgsApplication::pkgDataPath() + QStringLiteral( "/resources/datum_shift.csv" );
+  FILE *fp = VSIFOpen( filename.toUtf8().constData(), "rb" );
+#endif
   if ( !fp )
   {
     return false;
diff --git a/src/core/qgscoordinatetransform.cpp b/src/core/qgscoordinatetransform.cpp
index f608509444..82b89754c1 100644
--- a/src/core/qgscoordinatetransform.cpp
+++ b/src/core/qgscoordinatetransform.cpp
@@ -736,8 +736,16 @@ bool QgsCoordinateTransform::setFromCache( const QgsCoordinateReferenceSystem &s
   if ( !src.isValid() || !dest.isValid() )
     return false;
 
+  const QString sourceKey = src.authid().isEmpty() ?
+                            src.toWkt() : src.authid();
+  const QString destKey = dest.authid().isEmpty() ?
+                          dest.toWkt() : dest.authid();
+
+  if ( sourceKey.isEmpty() || destKey.isEmpty() )
+    return false;
+
   sCacheLock.lockForRead();
-  const QList< QgsCoordinateTransform > values = sTransforms.values( qMakePair( src.authid(), dest.authid() ) );
+  const QList< QgsCoordinateTransform > values = sTransforms.values( qMakePair( sourceKey, destKey ) );
   for ( auto valIt = values.constBegin(); valIt != values.constEnd(); ++valIt )
   {
     if ( ( *valIt ).sourceDatumTransformId() == srcDatumTransform &&
@@ -768,8 +776,16 @@ void QgsCoordinateTransform::addToCache()
   if ( !d->mSourceCRS.isValid() || !d->mDestCRS.isValid() )
     return;
 
+  const QString sourceKey = d->mSourceCRS.authid().isEmpty() ?
+                            d->mSourceCRS.toWkt() : d->mSourceCRS.authid();
+  const QString destKey = d->mDestCRS.authid().isEmpty() ?
+                          d->mDestCRS.toWkt() : d->mDestCRS.authid();
+
+  if ( sourceKey.isEmpty() || destKey.isEmpty() )
+    return;
+
   sCacheLock.lockForWrite();
-  sTransforms.insertMulti( qMakePair( d->mSourceCRS.authid(), d->mDestCRS.authid() ), *this );
+  sTransforms.insertMulti( qMakePair( sourceKey, destKey ), *this );
   sCacheLock.unlock();
 }
 
diff --git a/src/core/qgslabelfeature.h b/src/core/qgslabelfeature.h
index 6bbc785af7..1e42da583b 100644
--- a/src/core/qgslabelfeature.h
+++ b/src/core/qgslabelfeature.h
@@ -22,6 +22,7 @@
 #include "geos_c.h"
 #include "qgsgeos.h"
 #include "qgsmargins.h"
+#include "pal.h"
 
 namespace pal
 {
@@ -334,6 +335,19 @@ class CORE_EXPORT QgsLabelFeature
      */
     void setObstacleFactor( double factor ) { mObstacleFactor = factor; }
 
+    /**
+     * Returns the feature's arrangement flags.
+     * \see setArrangementFlags
+     */
+    pal::LineArrangementFlags arrangementFlags() const { return mArrangementFlags; }
+
+    /**
+     * Sets the feature's arrangement flags.
+     * \param flags arrangement flags
+     * \see arrangementFlags
+     */
+    void setArrangementFlags( pal::LineArrangementFlags flags ) { mArrangementFlags = flags; }
+
     /**
      * Text of the label
      *
@@ -412,6 +426,8 @@ class CORE_EXPORT QgsLabelFeature
     //! extra information for curved labels (may be null)
     pal::LabelInfo *mInfo = nullptr;
 
+    pal::LineArrangementFlags mArrangementFlags = nullptr;
+
   private:
 
     //! GEOS geometry on which mPermissibleZoneGeosPrepared is based on
diff --git a/src/core/qgslabelingengine.cpp b/src/core/qgslabelingengine.cpp
index 0a47511cb9..50bb7b5b4e 100644
--- a/src/core/qgslabelingengine.cpp
+++ b/src/core/qgslabelingengine.cpp
@@ -81,6 +81,13 @@ QgsLabelingEngine::~QgsLabelingEngine()
   qDeleteAll( mSubProviders );
 }
 
+void QgsLabelingEngine::setMapSettings( const QgsMapSettings &mapSettings )
+{
+  mMapSettings = mapSettings;
+  if ( mResults )
+    mResults->setMapSettings( mapSettings );
+}
+
 QList< QgsMapLayer * > QgsLabelingEngine::participatingLayers() const
 {
   QSet< QgsMapLayer * > layers;
@@ -125,9 +132,6 @@ void QgsLabelingEngine::processProvider( QgsAbstractLabelProvider *provider, Qgs
                               flags.testFlag( QgsAbstractLabelProvider::DrawLabels ),
                               flags.testFlag( QgsAbstractLabelProvider::DrawAllLabels ) );
 
-  // extra flags for placement of labels for linestrings
-  l->setArrangementFlags( static_cast< pal::LineArrangementFlags >( provider->linePlacementFlags() ) );
-
   // set label mode (label per feature is the default)
   l->setLabelMode( flags.testFlag( QgsAbstractLabelProvider::LabelPerFeaturePart ) ? pal::Layer::LabelPerFeaturePart : pal::Layer::LabelPerFeature );
 
@@ -365,7 +369,6 @@ QgsAbstractLabelProvider::QgsAbstractLabelProvider( QgsMapLayer *layer, const QS
   , mProviderId( providerId )
   , mFlags( DrawLabels )
   , mPlacement( QgsPalLayerSettings::AroundPoint )
-  , mLinePlacementFlags( 0 )
   , mPriority( 0.5 )
   , mObstacleType( QgsPalLayerSettings::PolygonInterior )
   , mUpsidedownLabels( QgsPalLayerSettings::Upright )
@@ -459,3 +462,39 @@ QVector<QgsPalLayerSettings::PredefinedPointPosition> QgsLabelingUtils::decodePr
   }
   return result;
 }
+
+QString QgsLabelingUtils::encodeLinePlacementFlags( pal::LineArrangementFlags flags )
+{
+  QStringList parts;
+  if ( flags & pal::FLAG_ON_LINE )
+    parts << QStringLiteral( "OL" );
+  if ( flags & pal::FLAG_ABOVE_LINE )
+    parts << QStringLiteral( "AL" );
+  if ( flags & pal::FLAG_BELOW_LINE )
+    parts << QStringLiteral( "BL" );
+  if ( !( flags & pal::FLAG_MAP_ORIENTATION ) )
+    parts << QStringLiteral( "LO" );
+  return parts.join( ',' );
+}
+
+pal::LineArrangementFlags QgsLabelingUtils::decodeLinePlacementFlags( const QString &string )
+{
+  pal::LineArrangementFlags flags = nullptr;
+  const QStringList flagList = string.split( ',' );
+  bool foundLineOrientationFlag = false;
+  for ( const QString &flag : flagList )
+  {
+    QString cleaned = flag.trimmed().toUpper();
+    if ( cleaned == QLatin1String( "OL" ) )
+      flags |= pal::FLAG_ON_LINE;
+    else if ( cleaned == QLatin1String( "AL" ) )
+      flags |= pal::FLAG_ABOVE_LINE;
+    else if ( cleaned == QLatin1String( "BL" ) )
+      flags |= pal::FLAG_BELOW_LINE;
+    else if ( cleaned == QLatin1String( "LO" ) )
+      foundLineOrientationFlag = true;
+  }
+  if ( !foundLineOrientationFlag )
+    flags |= pal::FLAG_MAP_ORIENTATION;
+  return flags;
+}
diff --git a/src/core/qgslabelingengine.h b/src/core/qgslabelingengine.h
index 3ba23b973c..28f9c8087f 100644
--- a/src/core/qgslabelingengine.h
+++ b/src/core/qgslabelingengine.h
@@ -23,7 +23,7 @@
 
 #include "qgspallabeling.h"
 #include "qgslabelingenginesettings.h"
-
+#include "pal.h"
 
 class QgsLabelingEngine;
 
@@ -93,9 +93,6 @@ class CORE_EXPORT QgsAbstractLabelProvider
     //! What placement strategy to use for the labels
     QgsPalLayerSettings::Placement placement() const { return mPlacement; }
 
-    //! For layers with linestring geometries - extra placement flags (or-ed combination of QgsPalLayerSettings::LinePlacementFlags)
-    unsigned int linePlacementFlags() const { return mLinePlacementFlags; }
-
     //! Default priority of labels (may be overridden by individual labels)
     double priority() const { return mPriority; }
 
@@ -121,8 +118,6 @@ class CORE_EXPORT QgsAbstractLabelProvider
     Flags mFlags;
     //! Placement strategy
     QgsPalLayerSettings::Placement mPlacement;
-    //! Extra placement flags for linestring geometries
-    unsigned int mLinePlacementFlags;
     //! Default priority of labels
     double mPriority;
     //! Type of the obstacle of feature geometries
@@ -181,7 +176,7 @@ class CORE_EXPORT QgsLabelingEngine
     QgsLabelingEngine &operator=( const QgsLabelingEngine &rh ) = delete;
 
     //! Associate map settings instance
-    void setMapSettings( const QgsMapSettings &mapSettings ) { mMapSettings = mapSettings; }
+    void setMapSettings( const QgsMapSettings &mapSettings );
     //! Gets associated map settings
     const QgsMapSettings &mapSettings() const { return mMapSettings; }
 
@@ -255,6 +250,18 @@ class CORE_EXPORT QgsLabelingUtils
      */
     static QVector< QgsPalLayerSettings::PredefinedPointPosition > decodePredefinedPositionOrder( const QString &positionString );
 
+    /**
+     * Encodes line placement \a flags to a string.
+     * \see decodeLinePlacementFlags()
+     */
+    static QString encodeLinePlacementFlags( pal::LineArrangementFlags flags );
+
+    /**
+     * Decodes a \a string to set of line placement flags.
+     * \see encodeLinePlacementFlags()
+     */
+    static pal::LineArrangementFlags decodeLinePlacementFlags( const QString &string );
+
 };
 
 #endif // QGSLABELINGENGINEV2_H
diff --git a/src/core/qgslabelsearchtree.cpp b/src/core/qgslabelsearchtree.cpp
index b09d2cc4eb..b4e193d891 100644
--- a/src/core/qgslabelsearchtree.cpp
+++ b/src/core/qgslabelsearchtree.cpp
@@ -27,8 +27,9 @@ QgsLabelSearchTree::~QgsLabelSearchTree()
   clear();
 }
 
-void QgsLabelSearchTree::label( const QgsPointXY &p, QList<QgsLabelPosition *> &posList ) const
+void QgsLabelSearchTree::label( const QgsPointXY &point, QList<QgsLabelPosition *> &posList ) const
 {
+  QgsPointXY p( point );
   double c_min[2];
   c_min[0] = p.x() - 0.1;
   c_min[1] = p.y() - 0.1;
@@ -44,7 +45,7 @@ void QgsLabelSearchTree::label( const QgsPointXY &p, QList<QgsLabelPosition *> &
   QList<QgsLabelPosition *>::const_iterator resultIt = searchResults.constBegin();
   for ( ; resultIt != searchResults.constEnd(); ++resultIt )
   {
-    if ( ( *resultIt )->labelRect.contains( p ) )
+    if ( ( *resultIt )->labelGeometry.contains( &p ) )
     {
       posList.push_back( *resultIt );
     }
@@ -67,7 +68,10 @@ void QgsLabelSearchTree::labelsInRect( const QgsRectangle &r, QList<QgsLabelPosi
   QList<QgsLabelPosition *>::const_iterator resultIt = searchResults.constBegin();
   for ( ; resultIt != searchResults.constEnd(); ++resultIt )
   {
-    posList.push_back( *resultIt );
+    if ( ( *resultIt )->labelGeometry.intersects( r ) )
+    {
+      posList.push_back( *resultIt );
+    }
   }
 }
 
@@ -78,28 +82,59 @@ bool QgsLabelSearchTree::insertLabel( pal::LabelPosition *labelPos, int featureI
     return false;
   }
 
-  double c_min[2];
-  double c_max[2];
-  labelPos->getBoundingBox( c_min, c_max );
-
   QVector<QgsPointXY> cornerPoints;
   cornerPoints.reserve( 4 );
+  double xMin = std::numeric_limits< double >::max();
+  double yMin = std::numeric_limits< double >::max();
+  double xMax = std::numeric_limits< double >::lowest();
+  double yMax = std::numeric_limits< double >::lowest();
   for ( int i = 0; i < 4; ++i )
   {
-    cornerPoints.push_back( QgsPointXY( labelPos->getX( i ), labelPos->getY( i ) ) );
+    // we have to transform the bounding box to convert pre-rotated label positions back to real world locations
+    QPointF res = mTransform.map( QPointF( labelPos->getX( i ), labelPos->getY( i ) ) );
+    cornerPoints.push_back( QgsPointXY( res ) );
+    xMin = std::min( xMin, res.x() );
+    xMax = std::max( xMax, res.x() );
+    yMin = std::min( yMin, res.y() );
+    yMax = std::max( yMax, res.y() );
   }
-  QgsLabelPosition *newEntry = new QgsLabelPosition( featureId, labelPos->getAlpha(), cornerPoints, QgsRectangle( c_min[0], c_min[1], c_max[0], c_max[1] ),
-      labelPos->getWidth(), labelPos->getHeight(), layerName, labeltext, labelfont, labelPos->getUpsideDown(), diagram, pinned, providerId );
-  mSpatialIndex.Insert( c_min, c_max, newEntry );
-  mOwnedPositions << newEntry;
+  double c_min[2];
+  double c_max[2];
+  c_min[0] = xMin;
+  c_min[1] = yMin;
+  c_max[0] = xMax;
+  c_max[1] = yMax;
+
+  QgsGeometry labelGeometry( QgsGeometry::fromPolygonXY( QVector<QgsPolylineXY>() << cornerPoints ) );
+  std::unique_ptr< QgsLabelPosition > newEntry = qgis::make_unique< QgsLabelPosition >( featureId, labelPos->getAlpha() + mMapSettings.rotation(), cornerPoints, QgsRectangle( c_min[0], c_min[1], c_max[0], c_max[1] ),
+      labelPos->getWidth(), labelPos->getHeight(), layerName, labeltext, labelfont, labelPos->getUpsideDown(), diagram, pinned, providerId, labelGeometry );
+  mSpatialIndex.Insert( c_min, c_max, newEntry.get() );
+  mOwnedPositions.emplace_back( std::move( newEntry ) );
   return true;
 }
 
+void QgsLabelSearchTree::setMapSettings( const QgsMapSettings &settings )
+{
+  mMapSettings = settings;
+
+  if ( !qgsDoubleNear( mMapSettings.rotation(), 0.0 ) )
+  {
+    // build a transform to convert points from real world to pre-rotated label positions
+    const QgsPointXY center = mMapSettings.visibleExtent().center();
+    mTransform = QTransform::fromTranslate( center.x(), center.y() );
+    mTransform.rotate( mMapSettings.rotation() );
+    mTransform.translate( -center.x(), -center.y() );
+  }
+  else
+  {
+    mTransform = QTransform();
+  }
+}
+
 void QgsLabelSearchTree::clear()
 {
   mSpatialIndex.RemoveAll();
 
   //PAL rtree iterator is buggy and doesn't iterate over all items, so we can't iterate through the tree to delete positions
-  qDeleteAll( mOwnedPositions );
   mOwnedPositions.clear();
 }
diff --git a/src/core/qgslabelsearchtree.h b/src/core/qgslabelsearchtree.h
index 61c70bccd2..22b6cee166 100644
--- a/src/core/qgslabelsearchtree.h
+++ b/src/core/qgslabelsearchtree.h
@@ -25,6 +25,7 @@
 #include <QVector>
 #include "qgspallabeling.h"
 #include "rtree.hpp"
+#include "qgsmapsettings.h"
 
 class QgsPointXY;
 
@@ -35,6 +36,8 @@ namespace pal
 }
 #endif
 
+// TODO QGIS 4.0 - this should be private, not exposed to SIP
+
 /**
  * \ingroup core
  * A class to query the labeling structure at a given point (small wrapper around pal RTree class)
@@ -78,10 +81,18 @@ class CORE_EXPORT QgsLabelSearchTree
      */
     bool insertLabel( pal::LabelPosition *labelPos, int featureId, const QString &layerName, const QString &labeltext, const QFont &labelfont, bool diagram = false, bool pinned = false, const QString &providerId = QString() ) SIP_SKIP;
 
+    /**
+     * Sets the map \a settings associated with the labeling run.
+     * \since QGIS 3.4.8
+     */
+    void setMapSettings( const QgsMapSettings &settings );
+
   private:
     // set as mutable because RTree template is not const-correct
     mutable pal::RTree<QgsLabelPosition *, double, 2, double> mSpatialIndex;
-    QList< QgsLabelPosition * > mOwnedPositions;
+    std::vector< std::unique_ptr< QgsLabelPosition > > mOwnedPositions;
+    QgsMapSettings mMapSettings;
+    QTransform mTransform;
 
 #ifdef SIP_RUN
     //! QgsLabelSearchTree cannot be copied.
diff --git a/src/core/qgsmaplayer.cpp b/src/core/qgsmaplayer.cpp
index 4c2dc1b7ed..718efb4eac 100644
--- a/src/core/qgsmaplayer.cpp
+++ b/src/core/qgsmaplayer.cpp
@@ -799,24 +799,16 @@ QString QgsMapLayer::baseURI( PropertyType type ) const
 {
   QString myURI = publicSource();
 
-  // if file is using the VSIFILE mechanism, remove the prefix
-  if ( myURI.startsWith( QLatin1String( "/vsigzip/" ), Qt::CaseInsensitive ) )
-  {
-    myURI.remove( 0, 9 );
-  }
-  else if ( myURI.startsWith( QLatin1String( "/vsizip/" ), Qt::CaseInsensitive ) &&
-            myURI.endsWith( QLatin1String( ".zip" ), Qt::CaseInsensitive ) )
-  {
-    // ideally we should look for .qml file inside zip file
-    myURI.remove( 0, 8 );
-  }
-  else if ( myURI.startsWith( QLatin1String( "/vsitar/" ), Qt::CaseInsensitive ) &&
-            ( myURI.endsWith( QLatin1String( ".tar" ), Qt::CaseInsensitive ) ||
-              myURI.endsWith( QLatin1String( ".tar.gz" ), Qt::CaseInsensitive ) ||
-              myURI.endsWith( QLatin1String( ".tgz" ), Qt::CaseInsensitive ) ) )
-  {
-    // ideally we should look for .qml file inside tar file
-    myURI.remove( 0, 8 );
+  // first get base path for delimited text, spatialite and OGR layers,
+  // as in these cases URI may contain layer name and/or additional
+  // information. This also strips prefix in case if VSIFILE mechanism
+  // is used
+  QString providerType = dataProvider()->name();
+  if ( providerType == QLatin1String( "ogr" ) || providerType == QLatin1String( "delimitedtext" ) ||
+       providerType == QLatin1String( "spatialite" ) )
+  {
+    QVariantMap components = QgsProviderRegistry::instance()->decodeUri( providerType, myURI );
+    myURI = components["path"].toString();
   }
 
   QFileInfo myFileInfo( myURI );
diff --git a/src/core/qgsmaptopixelgeometrysimplifier.cpp b/src/core/qgsmaptopixelgeometrysimplifier.cpp
index 4f57db3195..4041b690a3 100644
--- a/src/core/qgsmaptopixelgeometrysimplifier.cpp
+++ b/src/core/qgsmaptopixelgeometrysimplifier.cpp
@@ -162,8 +162,6 @@ std::unique_ptr< QgsAbstractGeometry > QgsMapToPixelSimplifier::simplifyGeometry
     }
 
     double x = 0.0, y = 0.0, lastX = 0.0, lastY = 0.0;
-    QgsRectangle r;
-    r.setMinimal();
 
     if ( numPoints <= ( isaLinearRing ? 4 : 2 ) )
       isGeneralizable = false;
@@ -225,8 +223,6 @@ std::unique_ptr< QgsAbstractGeometry > QgsMapToPixelSimplifier::simplifyGeometry
             lastX = x;
             lastY = y;
           }
-
-          r.combineExtentWith( x, y );
         }
         break;
       }
@@ -300,8 +296,6 @@ std::unique_ptr< QgsAbstractGeometry > QgsMapToPixelSimplifier::simplifyGeometry
 
             hasLongSegments |= isLongSegment;
           }
-
-          r.combineExtentWith( x, y );
         }
       }
     }
@@ -317,7 +311,7 @@ std::unique_ptr< QgsAbstractGeometry > QgsMapToPixelSimplifier::simplifyGeometry
       {
         // approximate the geometry's shape by its bounding box
         // (rect for linear ring / one segment for line string)
-        return generalizeWkbGeometryByBoundingBox( wkbType, geometry, r, isaLinearRing );
+        return generalizeWkbGeometryByBoundingBox( wkbType, geometry, envelope, isaLinearRing );
       }
       else
       {
diff --git a/src/core/qgsnetworkaccessmanager.cpp b/src/core/qgsnetworkaccessmanager.cpp
index 9f85a1c0cc..e39f627d3d 100644
--- a/src/core/qgsnetworkaccessmanager.cpp
+++ b/src/core/qgsnetworkaccessmanager.cpp
@@ -34,6 +34,7 @@
 #include <QNetworkReply>
 #include <QThreadStorage>
 #include <QAuthenticator>
+#include <QStandardPaths>
 
 #ifndef QT_NO_SSL
 #include <QSslConfiguration>
@@ -390,8 +391,8 @@ void QgsNetworkAccessManager::setupDefaultProxyAndCache( Qt::ConnectionType conn
 
   QString cacheDirectory = settings.value( QStringLiteral( "cache/directory" ) ).toString();
   if ( cacheDirectory.isEmpty() )
-    cacheDirectory = QgsApplication::qgisSettingsDirPath() + "cache";
-  qint64 cacheSize = settings.value( QStringLiteral( "cache/size" ), 50 * 1024 * 1024 ).toULongLong();
+    cacheDirectory = QStandardPaths::writableLocation( QStandardPaths::CacheLocation );
+  qint64 cacheSize = settings.value( QStringLiteral( "cache/size" ), 50 * 1024 * 1024 ).toLongLong();
   newcache->setCacheDirectory( cacheDirectory );
   newcache->setMaximumCacheSize( cacheSize );
   QgsDebugMsgLevel( QStringLiteral( "cacheDirectory: %1" ).arg( newcache->cacheDirectory() ), 4 );
diff --git a/src/core/qgsofflineediting.cpp b/src/core/qgsofflineediting.cpp
index 21e52e25e1..091b8570c7 100644
--- a/src/core/qgsofflineediting.cpp
+++ b/src/core/qgsofflineediting.cpp
@@ -835,6 +835,16 @@ QgsVectorLayer *QgsOfflineEditing::copyVectorLayer( QgsVectorLayer *layer, sqlit
     // copy style
     copySymbology( layer, newLayer );
 
+    //remove constrainst of fields that use defaultValueClauses from provider on original
+    const auto fields = layer->fields();
+    for ( const QgsField &field : fields )
+    {
+      if ( !layer->dataProvider()->defaultValueClause( layer->fields().fieldOriginIndex( layer->fields().indexOf( field.name() ) ) ).isEmpty() )
+      {
+        newLayer->removeFieldConstraint( newLayer->fields().indexOf( field.name() ), QgsFieldConstraints::ConstraintNotNull );
+      }
+    }
+
     QgsLayerTreeGroup *layerTreeRoot = QgsProject::instance()->layerTreeRoot();
     // Find the parent group of the original layer
     QgsLayerTreeLayer *layerTreeLayer = layerTreeRoot->findLayer( layer->id() );
diff --git a/src/core/qgsogrutils.cpp b/src/core/qgsogrutils.cpp
index d6f3ccc76e..fed6af3dc3 100644
--- a/src/core/qgsogrutils.cpp
+++ b/src/core/qgsogrutils.cpp
@@ -307,12 +307,100 @@ std::unique_ptr< QgsLineString > ogrGeometryToQgsLineString( OGRGeometryH geom )
   return qgis::make_unique< QgsLineString>( x, y, z, m, wkbType == QgsWkbTypes::LineString25D );
 }
 
+QgsWkbTypes::Type QgsOgrUtils::ogrGeometryTypeToQgsWkbType( OGRwkbGeometryType ogrGeomType )
+{
+  switch ( ogrGeomType )
+  {
+    case wkbUnknown: return QgsWkbTypes::Type::Unknown;
+    case wkbPoint: return QgsWkbTypes::Type::Point;
+    case wkbLineString: return QgsWkbTypes::Type::LineString;
+    case wkbPolygon: return QgsWkbTypes::Type::Polygon;
+    case wkbMultiPoint: return QgsWkbTypes::Type::MultiPoint;
+    case wkbMultiLineString: return QgsWkbTypes::Type::MultiLineString;
+    case wkbMultiPolygon: return QgsWkbTypes::Type::MultiPolygon;
+    case wkbGeometryCollection: return QgsWkbTypes::Type::GeometryCollection;
+    case wkbCircularString: return QgsWkbTypes::Type::CircularString;
+    case wkbCompoundCurve: return QgsWkbTypes::Type::CompoundCurve;
+    case wkbCurvePolygon: return QgsWkbTypes::Type::CurvePolygon;
+    case wkbMultiCurve: return QgsWkbTypes::Type::MultiCurve;
+    case wkbMultiSurface: return QgsWkbTypes::Type::MultiSurface;
+    case wkbCurve: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbSurface: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbPolyhedralSurface: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTIN: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTriangle: return QgsWkbTypes::Type::Triangle;
+
+    case wkbNone: return QgsWkbTypes::Type::NoGeometry;
+    case wkbLinearRing: return QgsWkbTypes::Type::LineString; // approximate match
+
+    case wkbCircularStringZ: return QgsWkbTypes::Type::CircularStringZ;
+    case wkbCompoundCurveZ: return QgsWkbTypes::Type::CompoundCurveZ;
+    case wkbCurvePolygonZ: return QgsWkbTypes::Type::CurvePolygonZ;
+    case wkbMultiCurveZ: return QgsWkbTypes::Type::MultiCurveZ;
+    case wkbMultiSurfaceZ: return QgsWkbTypes::Type::MultiSurfaceZ;
+    case wkbCurveZ: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbSurfaceZ: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbPolyhedralSurfaceZ: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTINZ: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTriangleZ: return QgsWkbTypes::Type::TriangleZ;
+
+    case wkbPointM: return QgsWkbTypes::Type::PointM;
+    case wkbLineStringM: return QgsWkbTypes::Type::LineStringM;
+    case wkbPolygonM: return QgsWkbTypes::Type::PolygonM;
+    case wkbMultiPointM: return QgsWkbTypes::Type::MultiPointM;
+    case wkbMultiLineStringM: return QgsWkbTypes::Type::MultiLineStringM;
+    case wkbMultiPolygonM: return QgsWkbTypes::Type::MultiPolygonM;
+    case wkbGeometryCollectionM: return QgsWkbTypes::Type::GeometryCollectionM;
+    case wkbCircularStringM: return QgsWkbTypes::Type::CircularStringM;
+    case wkbCompoundCurveM: return QgsWkbTypes::Type::CompoundCurveM;
+    case wkbCurvePolygonM: return QgsWkbTypes::Type::CurvePolygonM;
+    case wkbMultiCurveM: return QgsWkbTypes::Type::MultiCurveM;
+    case wkbMultiSurfaceM: return QgsWkbTypes::Type::MultiSurfaceM;
+    case wkbCurveM: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbSurfaceM: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbPolyhedralSurfaceM: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTINM: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTriangleM: return QgsWkbTypes::Type::TriangleM;
+
+    case wkbPointZM: return QgsWkbTypes::Type::PointZM;
+    case wkbLineStringZM: return QgsWkbTypes::Type::LineStringZM;
+    case wkbPolygonZM: return QgsWkbTypes::Type::PolygonZM;
+    case wkbMultiPointZM: return QgsWkbTypes::Type::MultiPointZM;
+    case wkbMultiLineStringZM: return QgsWkbTypes::Type::MultiLineStringZM;
+    case wkbMultiPolygonZM: return QgsWkbTypes::Type::MultiPolygonZM;
+    case wkbGeometryCollectionZM: return QgsWkbTypes::Type::GeometryCollectionZM;
+    case wkbCircularStringZM: return QgsWkbTypes::Type::CircularStringZM;
+    case wkbCompoundCurveZM: return QgsWkbTypes::Type::CompoundCurveZM;
+    case wkbCurvePolygonZM: return QgsWkbTypes::Type::CurvePolygonZM;
+    case wkbMultiCurveZM: return QgsWkbTypes::Type::MultiCurveZM;
+    case wkbMultiSurfaceZM: return QgsWkbTypes::Type::MultiSurfaceZM;
+    case wkbCurveZM: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbSurfaceZM: return QgsWkbTypes::Type::Unknown; // not an actual concrete type
+    case wkbPolyhedralSurfaceZM: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTINZM: return QgsWkbTypes::Type::Unknown; // no actual matching
+    case wkbTriangleZM: return QgsWkbTypes::Type::TriangleZM;
+
+    case wkbPoint25D: return QgsWkbTypes::Type::PointZ;
+    case wkbLineString25D: return QgsWkbTypes::Type::LineStringZ;
+    case wkbPolygon25D: return QgsWkbTypes::Type::PolygonZ;
+    case wkbMultiPoint25D: return QgsWkbTypes::Type::MultiPointZ;
+    case wkbMultiLineString25D: return QgsWkbTypes::Type::MultiLineStringZ;
+    case wkbMultiPolygon25D: return QgsWkbTypes::Type::MultiPolygonZ;
+    case wkbGeometryCollection25D: return QgsWkbTypes::Type::GeometryCollectionZ;
+  }
+
+  // should not reach that point normally
+  return QgsWkbTypes::Type::Unknown;
+}
+
 QgsGeometry QgsOgrUtils::ogrGeometryToQgsGeometry( OGRGeometryH geom )
 {
   if ( !geom )
     return QgsGeometry();
 
-  QgsWkbTypes::Type wkbType = static_cast<QgsWkbTypes::Type>( OGR_G_GetGeometryType( geom ) );
+  const auto ogrGeomType = OGR_G_GetGeometryType( geom );
+  QgsWkbTypes::Type wkbType = ogrGeometryTypeToQgsWkbType( ogrGeomType );
+
   // optimised case for some geometry classes, avoiding wkb conversion on OGR/QGIS sides
   // TODO - extend to other classes!
   switch ( QgsWkbTypes::flatType( wkbType ) )
@@ -334,6 +422,19 @@ QgsGeometry QgsOgrUtils::ogrGeometryToQgsGeometry( OGRGeometryH geom )
 
   // Fallback to inefficient WKB conversions
 
+  if ( wkbFlatten( wkbType ) == wkbGeometryCollection )
+  {
+    // Shapefile MultiPatch can be reported as GeometryCollectionZ of TINZ
+    if ( OGR_G_GetGeometryCount( geom ) >= 1 &&
+         wkbFlatten( OGR_G_GetGeometryType( OGR_G_GetGeometryRef( geom, 0 ) ) ) == wkbTIN )
+    {
+      auto newGeom = OGR_G_ForceToMultiPolygon( OGR_G_Clone( geom ) );
+      auto ret = ogrGeometryToQgsGeometry( newGeom );
+      OGR_G_DestroyGeometry( newGeom );
+      return ret;
+    }
+  }
+
   // get the wkb representation
   int memorySize = OGR_G_WkbSize( geom );
   unsigned char *wkb = new unsigned char[memorySize];
diff --git a/src/core/qgsogrutils.h b/src/core/qgsogrutils.h
index f9f5940e15..21d31c6688 100644
--- a/src/core/qgsogrutils.h
+++ b/src/core/qgsogrutils.h
@@ -247,6 +247,13 @@ class CORE_EXPORT QgsOgrUtils
      * \since QGIS 3.2
      */
     static QStringList cStringListToQStringList( char **stringList );
+
+    /**
+     * Converts a OGRwkbGeometryType to QgsWkbTypes::Type
+     *
+     * \since QGIS 3.4.9
+     */
+    static QgsWkbTypes::Type ogrGeometryTypeToQgsWkbType( OGRwkbGeometryType ogrGeomType );
 };
 
 #endif // QGSOGRUTILS_H
diff --git a/src/core/qgspallabeling.cpp b/src/core/qgspallabeling.cpp
index c1c455d718..d2fed0cb7d 100644
--- a/src/core/qgspallabeling.cpp
+++ b/src/core/qgspallabeling.cpp
@@ -59,6 +59,7 @@
 #include "qgssymbollayerutils.h"
 #include "qgsmaptopixelgeometrysimplifier.h"
 #include "qgscurvepolygon.h"
+#include "qgsgeometrycollection.h"
 #include <QMessageBox>
 
 
@@ -191,7 +192,7 @@ void QgsPalLayerSettings::initPropertyDefinitions()
     },
     { QgsPalLayerSettings::OffsetXY, QgsPropertyDefinition( "OffsetXY", QObject::tr( "Offset" ), QgsPropertyDefinition::Offset, origin ) },
     { QgsPalLayerSettings::OffsetUnits, QgsPropertyDefinition( "OffsetUnits", QObject::tr( "Offset units" ), QgsPropertyDefinition::RenderUnits, origin ) },
-    { QgsPalLayerSettings::LabelDistance, QgsPropertyDefinition( "LabelDistance", QObject::tr( "Label distance" ), QgsPropertyDefinition::DoublePositive, origin ) },
+    { QgsPalLayerSettings::LabelDistance, QgsPropertyDefinition( "LabelDistance", QObject::tr( "Label distance" ), QgsPropertyDefinition::Double, origin ) },
     { QgsPalLayerSettings::DistanceUnits, QgsPropertyDefinition( "DistanceUnits", QObject::tr( "Label distance units" ), QgsPropertyDefinition::RenderUnits, origin ) },
     { QgsPalLayerSettings::OffsetRotation, QgsPropertyDefinition( "OffsetRotation", QObject::tr( "Offset rotation" ), QgsPropertyDefinition::Rotation, origin ) },
     { QgsPalLayerSettings::CurvedCharAngleInOut, QgsPropertyDefinition( "CurvedCharAngleInOut", QgsPropertyDefinition::DataTypeString, QObject::tr( "Curved character angles" ), QObject::tr( "double coord [<b>in,out</b> as 20.0-60.0,20.0-95.0]" ), origin ) },
@@ -208,6 +209,11 @@ void QgsPalLayerSettings::initPropertyDefinitions()
                             "<b>BL</b>=Bottom left|<b>BSL</b>=Bottom, slightly left|<b>B</b>=Bottom middle|<br>"
                             "<b>BSR</b>=Bottom, slightly right|<b>BR</b>=Bottom right]" ), origin )
     },
+    {
+      QgsPalLayerSettings::LinePlacementOptions, QgsPropertyDefinition( "LinePlacementFlags", QgsPropertyDefinition::DataTypeString, QObject::tr( "Line placement options" ),  QObject::tr( "Comma separated list of placement options<br>" )
+          + QStringLiteral( "[<b>OL</b>=On line|<b>AL</b>=Above line|<b>BL</b>=Below line|<br>"
+                            "<b>LO</b>=Respect line orientation]" ), origin )
+    },
     { QgsPalLayerSettings::PositionX, QgsPropertyDefinition( "PositionX", QObject::tr( "Position (X)" ), QgsPropertyDefinition::Double, origin ) },
     { QgsPalLayerSettings::PositionY, QgsPropertyDefinition( "PositionY", QObject::tr( "Position (Y)" ), QgsPropertyDefinition::Double, origin ) },
     { QgsPalLayerSettings::Hali, QgsPropertyDefinition( "Hali", QgsPropertyDefinition::DataTypeString, QObject::tr( "Horizontal alignment" ), QObject::tr( "string " ) + "[<b>Left</b>|<b>Center</b>|<b>Right</b>]", origin ) },
@@ -1503,9 +1509,9 @@ void QgsPalLayerSettings::registerFeature( QgsFeature &f, QgsRenderContext &cont
   if ( geom.type() == QgsWkbTypes::PolygonGeometry && fitInPolygonOnly )
   {
     permissibleZone = geom;
-    if ( QgsPalLabeling::geometryRequiresPreparation( permissibleZone, context, ct, doClip ? extentGeom : QgsGeometry() ) )
+    if ( QgsPalLabeling::geometryRequiresPreparation( permissibleZone, context, ct, doClip ? extentGeom : QgsGeometry(), mergeLines ) )
     {
-      permissibleZone = QgsPalLabeling::prepareGeometry( permissibleZone, context, ct, doClip ? extentGeom : QgsGeometry() );
+      permissibleZone = QgsPalLabeling::prepareGeometry( permissibleZone, context, ct, doClip ? extentGeom : QgsGeometry(), mergeLines );
     }
   }
 
@@ -1518,9 +1524,9 @@ void QgsPalLayerSettings::registerFeature( QgsFeature &f, QgsRenderContext &cont
   }
 
   geos::unique_ptr geos_geom_clone;
-  if ( QgsPalLabeling::geometryRequiresPreparation( geom, context, ct, doClip ? extentGeom : QgsGeometry() ) )
+  if ( QgsPalLabeling::geometryRequiresPreparation( geom, context, ct, doClip ? extentGeom : QgsGeometry(), mergeLines ) )
   {
-    geom = QgsPalLabeling::prepareGeometry( geom, context, ct, doClip ? extentGeom : QgsGeometry() );
+    geom = QgsPalLabeling::prepareGeometry( geom, context, ct, doClip ? extentGeom : QgsGeometry(), mergeLines );
 
     if ( geom.isNull() )
       return;
@@ -1529,9 +1535,9 @@ void QgsPalLayerSettings::registerFeature( QgsFeature &f, QgsRenderContext &cont
 
   if ( isObstacle )
   {
-    if ( !obstacleGeometry.isNull() && QgsPalLabeling::geometryRequiresPreparation( obstacleGeometry, context, ct, doClip ? extentGeom : QgsGeometry() ) )
+    if ( !obstacleGeometry.isNull() && QgsPalLabeling::geometryRequiresPreparation( obstacleGeometry, context, ct, doClip ? extentGeom : QgsGeometry(), mergeLines ) )
     {
-      obstacleGeometry = QgsGeometry( QgsPalLabeling::prepareGeometry( obstacleGeometry, context, ct, doClip ? extentGeom : QgsGeometry() ) );
+      obstacleGeometry = QgsGeometry( QgsPalLabeling::prepareGeometry( obstacleGeometry, context, ct, doClip ? extentGeom : QgsGeometry(), mergeLines ) );
     }
   }
 
@@ -1927,7 +1933,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature &f, QgsRenderContext &cont
   // candidates are created just offset from a border and avoids candidates being incorrectly flagged as colliding with neighbours
   if ( placement == QgsPalLayerSettings::Line || placement == QgsPalLayerSettings::Curved || placement == QgsPalLayerSettings::PerimeterCurved )
   {
-    distance = std::max( distance, 1.0 );
+    distance = ( distance < 0 ? -1 : 1 ) * std::max( std::fabs( distance ), 1.0 );
   }
 
   if ( !qgsDoubleNear( distance, 0.0 ) )
@@ -1941,6 +1947,15 @@ void QgsPalLayerSettings::registerFeature( QgsFeature &f, QgsRenderContext &cont
     ( *labelFeature )->setHasFixedQuadrant( true );
   }
 
+  pal::LineArrangementFlags featureArrangementFlags = static_cast< pal::LineArrangementFlags >( placementFlags );
+  context.expressionContext().setOriginalValueVariable( QgsLabelingUtils::encodeLinePlacementFlags( featureArrangementFlags ) );
+  const QString dataDefinedLineArrangement = mDataDefinedProperties.valueAsString( QgsPalLayerSettings::LinePlacementOptions, context.expressionContext() );
+  if ( !dataDefinedLineArrangement.isEmpty() )
+  {
+    featureArrangementFlags = QgsLabelingUtils::decodeLinePlacementFlags( dataDefinedLineArrangement );
+  }
+  ( *labelFeature )->setArrangementFlags( featureArrangementFlags );
+
   // data defined z-index?
   context.expressionContext().setOriginalValueVariable( zIndex );
   double z = mDataDefinedProperties.valueAsDouble( QgsPalLayerSettings::ZIndex, context.expressionContext(), zIndex );
@@ -2028,9 +2043,9 @@ void QgsPalLayerSettings::registerObstacleFeature( QgsFeature &f, QgsRenderConte
   geos::unique_ptr geos_geom_clone;
   std::unique_ptr<QgsGeometry> scopedPreparedGeom;
 
-  if ( QgsPalLabeling::geometryRequiresPreparation( geom, context, ct, extentGeom ) )
+  if ( QgsPalLabeling::geometryRequiresPreparation( geom, context, ct, extentGeom, mergeLines ) )
   {
-    geom = QgsPalLabeling::prepareGeometry( geom, context, ct, extentGeom );
+    geom = QgsPalLabeling::prepareGeometry( geom, context, ct, extentGeom, mergeLines );
   }
   geos_geom_clone = QgsGeos::asGeos( geom );
 
@@ -2842,13 +2857,18 @@ bool QgsPalLabeling::staticWillUseLayer( QgsVectorLayer *layer )
 }
 
 
-bool QgsPalLabeling::geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry )
+bool QgsPalLabeling::geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry, bool mergeLines )
 {
   if ( geometry.isNull() )
   {
     return false;
   }
 
+  if ( geometry.type() == QgsWkbTypes::LineGeometry && geometry.isMultipart() && mergeLines )
+  {
+    return true;
+  }
+
   //requires reprojection
   if ( ct.isValid() && !ct.isShortCircuited() )
     return true;
@@ -2914,7 +2934,7 @@ QStringList QgsPalLabeling::splitToGraphemes( const QString &text )
   return graphemes;
 }
 
-QgsGeometry QgsPalLabeling::prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry )
+QgsGeometry QgsPalLabeling::prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry, bool mergeLines )
 {
   if ( geometry.isNull() )
   {
@@ -2924,6 +2944,11 @@ QgsGeometry QgsPalLabeling::prepareGeometry( const QgsGeometry &geometry, QgsRen
   //don't modify the feature's geometry so that geometry based expressions keep working
   QgsGeometry geom = geometry;
 
+  if ( geom.type() == QgsWkbTypes::LineGeometry && geom.isMultipart() && mergeLines )
+  {
+    geom = geom.mergeLines();
+  }
+
   //reproject the geometry if necessary
   if ( ct.isValid() && !ct.isShortCircuited() )
   {
@@ -2950,22 +2975,7 @@ QgsGeometry QgsPalLabeling::prepareGeometry( const QgsGeometry &geometry, QgsRen
   const QgsMapToPixel &m2p = context.mapToPixel();
   if ( !qgsDoubleNear( m2p.mapRotation(), 0 ) )
   {
-    QgsPointXY center = context.extent().center();
-
-    if ( ct.isValid() && !ct.isShortCircuited() )
-    {
-      try
-      {
-        center = ct.transform( center );
-      }
-      catch ( QgsCsException &cse )
-      {
-        Q_UNUSED( cse );
-        QgsDebugMsgLevel( QStringLiteral( "Ignoring feature due to transformation exception" ), 4 );
-        return QgsGeometry();
-      }
-    }
-
+    QgsPointXY center = context.mapExtent().center();
     if ( geom.rotate( m2p.mapRotation(), center ) )
     {
       QgsDebugMsg( QStringLiteral( "Error rotating geometry" ).arg( geom.asWkt() ) );
@@ -2974,15 +2984,37 @@ QgsGeometry QgsPalLabeling::prepareGeometry( const QgsGeometry &geometry, QgsRen
   }
 
   // fix invalid polygons
-  if ( geom.type() == QgsWkbTypes::PolygonGeometry && !geom.isGeosValid() )
+  if ( geom.type() == QgsWkbTypes::PolygonGeometry )
   {
-    QgsGeometry bufferGeom = geom.buffer( 0, 0 );
-    if ( bufferGeom.isNull() )
+    if ( geom.isMultipart() )
     {
-      QgsDebugMsg( QStringLiteral( "Could not repair geometry: %1" ).arg( bufferGeom.lastError() ) );
-      return QgsGeometry();
+      // important -- we need to treat ever part in isolation here. We can't test the validity of the whole geometry
+      // at once, because touching parts would result in an invalid geometry, and buffering this "dissolves" the parts.
+      // because the actual label engine treats parts as separate entities, we aren't bound by the usual "touching parts are invalid" rule
+      // see https://github.com/qgis/QGIS/issues/26763
+      QVector< QgsGeometry> parts;
+      parts.reserve( qgsgeometry_cast< const QgsGeometryCollection * >( geom.constGet() )->numGeometries() );
+      for ( auto it = geom.const_parts_begin(); it != geom.const_parts_end(); ++it )
+      {
+        QgsGeometry partGeom( ( *it )->clone() );
+        if ( !partGeom.isGeosValid() )
+        {
+          partGeom = partGeom.buffer( 0, 0 );
+        }
+        parts.append( partGeom );
+      }
+      geom = QgsGeometry::collectGeometry( parts );
+    }
+    else if ( !geom.isGeosValid() )
+    {
+      QgsGeometry bufferGeom = geom.buffer( 0, 0 );
+      if ( bufferGeom.isNull() )
+      {
+        QgsDebugMsg( QStringLiteral( "Could not repair geometry: %1" ).arg( bufferGeom.lastError() ) );
+        return QgsGeometry();
+      }
+      geom = bufferGeom;
     }
-    geom = bufferGeom;
   }
 
   if ( !clipGeometry.isNull() &&
@@ -3512,15 +3544,11 @@ void QgsPalLabeling::drawLabelCandidateRect( pal::LabelPosition *lp, QPainter *p
 }
 
 QgsLabelingResults::QgsLabelingResults()
+  : mLabelSearchTree( qgis::make_unique< QgsLabelSearchTree >() )
 {
-  mLabelSearchTree = new QgsLabelSearchTree();
 }
 
-QgsLabelingResults::~QgsLabelingResults()
-{
-  delete mLabelSearchTree;
-  mLabelSearchTree = nullptr;
-}
+QgsLabelingResults::~QgsLabelingResults() = default;
 
 QList<QgsLabelPosition> QgsLabelingResults::labelsAtPosition( const QgsPointXY &p ) const
 {
@@ -3557,3 +3585,8 @@ QList<QgsLabelPosition> QgsLabelingResults::labelsWithinRect( const QgsRectangle
 
   return positions;
 }
+
+void QgsLabelingResults::setMapSettings( const QgsMapSettings &settings )
+{
+  mLabelSearchTree->setMapSettings( settings );
+}
diff --git a/src/core/qgspallabeling.h b/src/core/qgspallabeling.h
index db3b93314e..ddce16f988 100644
--- a/src/core/qgspallabeling.h
+++ b/src/core/qgspallabeling.h
@@ -80,11 +80,31 @@ class QgsExpressionContext;
 class CORE_EXPORT QgsLabelPosition
 {
   public:
-    QgsLabelPosition( int id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString() )
+
+    /**
+     * Constructor for QgsLabelPosition.
+     * \param id associated feature ID
+     * \param r label rotation in degrees clockwise
+     * \param corners corner points of label bounding box, in map units
+     * \param rect label bounding box, in map units
+     * \param w width of label, in map units
+     * \param h height of label, in map units
+     * \param layer ID of associated map layer
+     * \param labeltext text rendered for label
+     * \param labelfont font used to render label
+     * \param upside_down TRUE if label is upside down
+     * \param diagram TRUE if label is a diagram
+     * \param pinned TRUE if label has pinned placement
+     * \param providerId ID of associated label provider
+     * \param labelGeometry polygon geometry of label boundary
+     */
+    QgsLabelPosition( QgsFeatureId id, double r, const QVector< QgsPointXY > &corners, const QgsRectangle &rect, double w, double h, const QString &layer, const QString &labeltext, const QFont &labelfont, bool upside_down, bool diagram = false, bool pinned = false, const QString &providerId = QString(),
+                      const QgsGeometry &labelGeometry = QgsGeometry() )
       : featureId( id )
       , rotation( r )
       , cornerPoints( corners )
       , labelRect( rect )
+      , labelGeometry( labelGeometry )
       , width( w )
       , height( h )
       , layerID( layer )
@@ -99,19 +119,69 @@ class CORE_EXPORT QgsLabelPosition
     //! Constructor for QgsLabelPosition
     QgsLabelPosition() = default;
 
-    int featureId = -1;
+    /**
+     * ID of feature associated with this label.
+     */
+    QgsFeatureId featureId = FID_NULL;
+
+    /**
+     * Rotation of label, in degrees clockwise.
+     */
     double rotation = 0;
+
     QVector< QgsPointXY > cornerPoints;
     QgsRectangle labelRect;
+
+    /**
+     * A polygon geometry representing the label's bounds in map coordinates.
+     * \since QGIS 3.4.9
+     */
+    QgsGeometry labelGeometry;
+
+    /**
+     * Width of label bounding box, in map units.
+     */
     double width = 0;
+
+    /**
+     * Heeght of label bounding box, in map units.
+     */
     double height = 0;
+
+    /**
+     * ID of associated map layer.
+     */
     QString layerID;
+
+    /**
+     * String shown in label.
+     */
     QString labelText;
+
+    /**
+     * Font which the label is rendered using.
+     */
     QFont labelFont;
+
+    /**
+     * True if label is upside down.
+     */
     bool upsideDown = false;
+
+    /**
+     * True if label is a diagram.
+     */
     bool isDiagram = false;
+
+    /**
+     * True if label position has been pinned.
+     */
     bool isPinned = false;
-    //! \since QGIS 2.14
+
+    /**
+     * ID of the associated label provider.
+     * \since QGIS 2.14
+     */
     QString providerID;
 };
 
@@ -348,6 +418,7 @@ class CORE_EXPORT QgsPalLayerSettings
       RepeatDistanceUnit = 86,
       Priority = 87,
       PredefinedPositionOrder = 91,
+      LinePlacementOptions = 99, //!< Line placement flags
 
       // rendering
       ScaleVisibility = 23,
@@ -958,12 +1029,18 @@ class CORE_EXPORT QgsLabelingResults
     //! Returns infos about labels within a given (map) rectangle
     QList<QgsLabelPosition> labelsWithinRect( const QgsRectangle &r ) const;
 
+    /**
+     * Sets the map \a settings associated with the labeling run.
+     * \since QGIS 3.4.8
+     */
+    void setMapSettings( const QgsMapSettings &settings );
+
   private:
 #ifdef SIP_RUN
     QgsLabelingResults( const QgsLabelingResults & );
 #endif
 
-    QgsLabelSearchTree *mLabelSearchTree = nullptr;
+    std::unique_ptr< QgsLabelSearchTree > mLabelSearchTree;
 
     friend class QgsPalLabeling;
     friend class QgsVectorLayerLabelProvider;
@@ -993,10 +1070,11 @@ class CORE_EXPORT QgsPalLabeling
      * \param context render context
      * \param ct coordinate transform, or invalid transform if no transformation required
      * \param clipGeometry geometry to clip features to, if applicable
+     * \param mergeLines TRUE if touching lines from this layer will be merged and treated as single features during labeling
      * \returns prepared geometry
      * \since QGIS 2.9
      */
-    static QgsGeometry prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry() ) SIP_FACTORY;
+    static QgsGeometry prepareGeometry( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry(), bool mergeLines = false ) SIP_FACTORY;
 
     /**
      * Checks whether a geometry requires preparation before registration with PAL
@@ -1004,10 +1082,11 @@ class CORE_EXPORT QgsPalLabeling
      * \param context render context
      * \param ct coordinate transform, or invalid transform if no transformation required
      * \param clipGeometry geometry to clip features to, if applicable
+     * \param mergeLines TRUE if touching lines from this layer will be merged and treated as single features during labeling
      * \returns true if geometry requires preparation
      * \since QGIS 2.9
      */
-    static bool geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry() );
+    static bool geometryRequiresPreparation( const QgsGeometry &geometry, QgsRenderContext &context, const QgsCoordinateTransform &ct, const QgsGeometry &clipGeometry = QgsGeometry(), bool mergeLines = false );
 
     /**
      * Splits a \a text string to a list of separate lines, using a specified wrap character (\a wrapCharacter).
diff --git a/src/core/qgspointlocator.cpp b/src/core/qgspointlocator.cpp
index d894afd5ed..0aba52bc9c 100644
--- a/src/core/qgspointlocator.cpp
+++ b/src/core/qgspointlocator.cpp
@@ -667,13 +667,17 @@ bool QgsPointLocator::rebuildIndex( int maxFeaturesToIndex )
       }
     }
 
-    SpatialIndex::Region r( rect2region( f.geometry().boundingBox() ) );
-    dataList << new RTree::Data( 0, nullptr, r, f.id() );
+    const QgsRectangle bbox = f.geometry().boundingBox();
+    if ( bbox.isFinite() )
+    {
+      SpatialIndex::Region r( rect2region( bbox ) );
+      dataList << new RTree::Data( 0, nullptr, r, f.id() );
 
-    if ( mGeoms.contains( f.id() ) )
-      delete mGeoms.take( f.id() );
-    mGeoms[f.id()] = new QgsGeometry( f.geometry() );
-    ++indexedCount;
+      if ( mGeoms.contains( f.id() ) )
+        delete mGeoms.take( f.id() );
+      mGeoms[f.id()] = new QgsGeometry( f.geometry() );
+      ++indexedCount;
+    }
 
     if ( maxFeaturesToIndex != -1 && indexedCount > maxFeaturesToIndex )
     {
@@ -776,8 +780,8 @@ void QgsPointLocator::onFeatureAdded( QgsFeatureId fid )
       }
     }
 
-    QgsRectangle bbox = f.geometry().boundingBox();
-    if ( !bbox.isNull() )
+    const QgsRectangle bbox = f.geometry().boundingBox();
+    if ( bbox.isFinite() )
     {
       SpatialIndex::Region r( rect2region( bbox ) );
       mRTree->insertData( 0, nullptr, r, f.id() );
diff --git a/src/core/qgsrendercontext.h b/src/core/qgsrendercontext.h
index 8faf46f9ca..b90426d9f9 100644
--- a/src/core/qgsrendercontext.h
+++ b/src/core/qgsrendercontext.h
@@ -250,6 +250,11 @@ class CORE_EXPORT QgsRenderContext
      */
     QgsRectangle mapExtent() const { return mOriginalMapExtent; }
 
+    /**
+     * Returns the context's map to pixel transform, which transforms between map coordinates and device coordinates.
+     *
+     * \see setMapToPixel()
+     */
     const QgsMapToPixel &mapToPixel() const {return mMapToPixel;}
 
     /**
@@ -260,8 +265,20 @@ class CORE_EXPORT QgsRenderContext
      */
     double scaleFactor() const {return mScaleFactor;}
 
+    /**
+     * Returns TRUE if the rendering operation has been stopped and any ongoing
+     * rendering should be canceled immediately.
+     *
+     * \see setRenderingStopped()
+     */
     bool renderingStopped() const {return mRenderingStopped;}
 
+    /**
+     * Returns TRUE if rendering operations should use vector operations instead
+     * of any faster raster shortcuts.
+     *
+     * \see setForceVectorOutput()
+     */
     bool forceVectorOutput() const;
 
     /**
@@ -274,6 +291,11 @@ class CORE_EXPORT QgsRenderContext
      */
     void setUseAdvancedEffects( bool enabled );
 
+    /**
+     * Returns TRUE if edit markers should be drawn during the render operation.
+     *
+     * \see setDrawEditingInformation()
+     */
     bool drawEditingInformation() const;
 
     /**
@@ -289,6 +311,11 @@ class CORE_EXPORT QgsRenderContext
      */
     QgsLabelingEngine *labelingEngine() const { return mLabelingEngine; } SIP_SKIP
 
+    /**
+     * Returns the color to use when rendering selected features.
+     *
+     * \see setSelectionColor()
+     */
     QColor selectionColor() const { return mSelectionColor; }
 
     /**
@@ -314,6 +341,11 @@ class CORE_EXPORT QgsRenderContext
      */
     void setCoordinateTransform( const QgsCoordinateTransform &t );
 
+    /**
+     * Sets the context's map to pixel transform, which transforms between map coordinates and device coordinates.
+     *
+     * \see mapToPixel()
+     */
     void setMapToPixel( const QgsMapToPixel &mtp ) {mMapToPixel = mtp;}
 
     /**
@@ -342,8 +374,19 @@ class CORE_EXPORT QgsRenderContext
      */
     void setMapExtent( const QgsRectangle &extent ) { mOriginalMapExtent = extent; }
 
+    /**
+     * Sets whether edit markers should be drawn during the render operation.
+     *
+     * \see drawEditingInformation()
+     */
     void setDrawEditingInformation( bool b );
 
+    /**
+     * Sets whether the rendering operation has been \a stopped and any ongoing
+     * rendering should be canceled immediately.
+     *
+     * \see renderingStopped()
+     */
     void setRenderingStopped( bool stopped ) {mRenderingStopped = stopped;}
 
     /**
@@ -376,6 +419,12 @@ class CORE_EXPORT QgsRenderContext
      */
     void setPainter( QPainter *p ) {mPainter = p;}
 
+    /**
+     * Sets whether rendering operations should use vector operations instead
+     * of any faster raster shortcuts.
+     *
+     * \see forceVectorOutput()
+     */
     void setForceVectorOutput( bool force );
 
     /**
@@ -383,6 +432,12 @@ class CORE_EXPORT QgsRenderContext
      * \note not available in Python bindings
      */
     void setLabelingEngine( QgsLabelingEngine *engine2 ) { mLabelingEngine = engine2; } SIP_SKIP
+
+    /**
+     * Sets the \a color to use when rendering selected features.
+     *
+     * \see selectionColor()
+     */
     void setSelectionColor( const QColor &color ) { mSelectionColor = color; }
 
     /**
diff --git a/src/core/qgssettings.h b/src/core/qgssettings.h
index 6657853fbf..f57d20e770 100644
--- a/src/core/qgssettings.h
+++ b/src/core/qgssettings.h
@@ -248,7 +248,7 @@ class CORE_EXPORT QgsSettings : public QObject
       if ( metaEnum.isValid() )
       {
         // read as string
-        QByteArray ba = value( key, metaEnum.valueToKey( defaultValue ) ).toString().toUtf8();
+        QByteArray ba = value( key, metaEnum.valueToKey( defaultValue ), section ).toString().toUtf8();
         const char *vs = ba.data();
         v = static_cast<T>( metaEnum.keyToValue( vs, &ok ) );
         if ( ok )
diff --git a/src/core/qgsspatialindex.cpp b/src/core/qgsspatialindex.cpp
index 510af48fac..5b3fbf31f9 100644
--- a/src/core/qgsspatialindex.cpp
+++ b/src/core/qgsspatialindex.cpp
@@ -296,6 +296,10 @@ bool QgsSpatialIndex::featureInfo( const QgsFeature &f, QgsRectangle &rect, QgsF
 
   id = f.id();
   rect = f.geometry().boundingBox();
+
+  if ( !rect.isFinite() )
+    return false;
+
   return true;
 }
 
diff --git a/src/core/qgsstringutils.cpp b/src/core/qgsstringutils.cpp
index ea96fb2ce5..7c41223159 100644
--- a/src/core/qgsstringutils.cpp
+++ b/src/core/qgsstringutils.cpp
@@ -409,7 +409,7 @@ QString QgsStringUtils::insertLinks( const QString &string, bool *foundLinks )
   // http://alanstorm.com/url_regex_explained
   // note - there's more robust implementations available, but we need one which works within the limitation of QRegExp
   static QRegExp urlRegEx( "(\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~\\s]|/))))" );
-  static QRegExp protoRegEx( "^(?:f|ht)tps?://" );
+  static QRegExp protoRegEx( "^(?:f|ht)tps?://|file://" );
   static QRegExp emailRegEx( "([\\w._%+-]+@[\\w.-]+\\.[A-Za-z]+)" );
 
   int offset = 0;
diff --git a/src/core/qgsvectorfilewriter.cpp b/src/core/qgsvectorfilewriter.cpp
index dd0f48d221..251f53cb2f 100644
--- a/src/core/qgsvectorfilewriter.cpp
+++ b/src/core/qgsvectorfilewriter.cpp
@@ -425,7 +425,51 @@ void QgsVectorFileWriter::init( QString vectorFileName,
   {
     mLayer = OGR_DS_CreateLayer( mDS.get(), layerName.toUtf8().constData(), mOgrRef, wkbType, options );
     if ( newLayer && mLayer )
+    {
       *newLayer = OGR_L_GetName( mLayer );
+      if ( driverName == QLatin1String( "GPX" ) )
+      {
+        // See logic in GDAL ogr/ogrsf_frmts/gpx/ogrgpxdatasource.cpp ICreateLayer()
+        switch ( QgsWkbTypes::flatType( geometryType ) )
+        {
+          case QgsWkbTypes::Point:
+          {
+            if ( !EQUAL( layerName.toUtf8().constData(), "track_points" ) &&
+                 !EQUAL( layerName.toUtf8().constData(), "route_points" ) )
+            {
+              *newLayer = QStringLiteral( "waypoints" );
+            }
+          }
+          break;
+
+          case QgsWkbTypes::LineString:
+          {
+            const char *pszForceGPXTrack
+              = CSLFetchNameValue( options, "FORCE_GPX_TRACK" );
+            if ( pszForceGPXTrack && CPLTestBool( pszForceGPXTrack ) )
+              *newLayer = QStringLiteral( "tracks" );
+            else
+              *newLayer = QStringLiteral( "routes" );
+
+          }
+          break;
+
+          case QgsWkbTypes::MultiLineString:
+          {
+            const char *pszForceGPXRoute
+              = CSLFetchNameValue( options, "FORCE_GPX_ROUTE" );
+            if ( pszForceGPXRoute && CPLTestBool( pszForceGPXRoute ) )
+              *newLayer = QStringLiteral( "routes" );
+            else
+              *newLayer = QStringLiteral( "tracks" );
+          }
+          break;
+
+          default:
+            break;
+        }
+      }
+    }
   }
   else if ( driverName == QLatin1String( "DGN" ) )
   {
diff --git a/src/core/qgsvectorlayerdiagramprovider.cpp b/src/core/qgsvectorlayerdiagramprovider.cpp
index 70ecdfe039..6118757624 100644
--- a/src/core/qgsvectorlayerdiagramprovider.cpp
+++ b/src/core/qgsvectorlayerdiagramprovider.cpp
@@ -43,7 +43,6 @@ void QgsVectorLayerDiagramProvider::init()
   mName = mLayerId;
   mPriority = 1 - mSettings.priority() / 10.0; // convert 0..10 --> 1..0
   mPlacement = QgsPalLayerSettings::Placement( mSettings.placement() );
-  mLinePlacementFlags = mSettings.linePlacementFlags();
 }
 
 
diff --git a/src/core/qgsvectorlayerlabelprovider.cpp b/src/core/qgsvectorlayerlabelprovider.cpp
index 075d8984b1..f42a553c92 100644
--- a/src/core/qgsvectorlayerlabelprovider.cpp
+++ b/src/core/qgsvectorlayerlabelprovider.cpp
@@ -61,7 +61,6 @@ QgsVectorLayerLabelProvider::QgsVectorLayerLabelProvider( QgsVectorLayer *layer,
 void QgsVectorLayerLabelProvider::init()
 {
   mPlacement = mSettings.placement;
-  mLinePlacementFlags = mSettings.placementFlags;
   mFlags = Flags();
   if ( mSettings.drawLabels )
     mFlags |= DrawLabels;
diff --git a/src/core/raster/qgsrasterdataprovider.cpp b/src/core/raster/qgsrasterdataprovider.cpp
index e87cac478c..bf43d84fe6 100644
--- a/src/core/raster/qgsrasterdataprovider.cpp
+++ b/src/core/raster/qgsrasterdataprovider.cpp
@@ -46,7 +46,7 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
   QgsDebugMsgLevel( QStringLiteral( "bandNo = %1 width = %2 height = %3" ).arg( bandNo ).arg( width ).arg( height ), 4 );
   QgsDebugMsgLevel( QStringLiteral( "boundingBox = %1" ).arg( boundingBox.toString() ), 4 );
 
-  QgsRasterBlock *block = new QgsRasterBlock( dataType( bandNo ), width, height );
+  std::unique_ptr< QgsRasterBlock > block = qgis::make_unique< QgsRasterBlock >( dataType( bandNo ), width, height );
   if ( sourceHasNoDataValue( bandNo ) && useSourceNoDataValue( bandNo ) )
   {
     block->setNoDataValue( sourceNoDataValue( bandNo ) );
@@ -55,7 +55,7 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
   if ( block->isEmpty() )
   {
     QgsDebugMsg( QStringLiteral( "Couldn't create raster block" ) );
-    return block;
+    return block.release();
   }
 
   // Read necessary extent only
@@ -65,7 +65,7 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
   {
     QgsDebugMsg( QStringLiteral( "Extent outside provider extent" ) );
     block->setIsNoData();
-    return block;
+    return block.release();
   }
 
   double xRes = boundingBox.width() / width;
@@ -112,7 +112,7 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
     {
       // Should not happen
       QgsDebugMsg( QStringLiteral( "Row or column limits out of range" ) );
-      return block;
+      return block.release();
     }
 
     // If lower source resolution is used, the extent must beS aligned to original
@@ -139,13 +139,18 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
     QgsDebugMsgLevel( QStringLiteral( "Reading smaller block tmpWidth = %1 height = %2" ).arg( tmpWidth ).arg( tmpHeight ), 4 );
     QgsDebugMsgLevel( QStringLiteral( "tmpExtent = %1" ).arg( tmpExtent.toString() ), 4 );
 
-    QgsRasterBlock *tmpBlock = new QgsRasterBlock( dataType( bandNo ), tmpWidth, tmpHeight );
+    std::unique_ptr< QgsRasterBlock > tmpBlock = qgis::make_unique< QgsRasterBlock >( dataType( bandNo ), tmpWidth, tmpHeight );
     if ( sourceHasNoDataValue( bandNo ) && useSourceNoDataValue( bandNo ) )
     {
       tmpBlock->setNoDataValue( sourceNoDataValue( bandNo ) );
     }
 
-    readBlock( bandNo, tmpExtent, tmpWidth, tmpHeight, tmpBlock->bits(), feedback );
+    if ( !readBlock( bandNo, tmpExtent, tmpWidth, tmpHeight, tmpBlock->bits(), feedback ) )
+    {
+      QgsDebugMsg( QStringLiteral( "Error occurred while reading block" ) );
+      block->setIsNoData();
+      return block.release();
+    }
 
     int pixelSize = dataTypeSize( bandNo );
 
@@ -168,8 +173,7 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
         {
           QgsDebugMsg( QStringLiteral( "Source row or column limits out of range" ) );
           block->setIsNoData(); // so that the problem becomes obvious and fixed
-          delete tmpBlock;
-          return block;
+          return block.release();
         }
 
         qgssize tmpIndex = static_cast< qgssize >( tmpRow ) * static_cast< qgssize >( tmpWidth ) + tmpCol;
@@ -190,19 +194,22 @@ QgsRasterBlock *QgsRasterDataProvider::block( int bandNo, QgsRectangle  const &b
         memcpy( bits, tmpBits, pixelSize );
       }
     }
-
-    delete tmpBlock;
   }
   else
   {
-    readBlock( bandNo, boundingBox, width, height, block->bits(), feedback );
+    if ( !readBlock( bandNo, boundingBox, width, height, block->bits(), feedback ) )
+    {
+      QgsDebugMsg( QStringLiteral( "Error occurred while reading block" ) );
+      block->setIsNoData();
+      return block.release();
+    }
   }
 
   // apply scale and offset
   block->applyScaleOffset( bandScale( bandNo ), bandOffset( bandNo ) );
   // apply user no data values
   block->applyNoDataValues( userNoDataValues( bandNo ) );
-  return block;
+  return block.release();
 }
 
 QgsRasterDataProvider::QgsRasterDataProvider()
diff --git a/src/core/raster/qgsrasterdataprovider.h b/src/core/raster/qgsrasterdataprovider.h
index 630b8a0812..6cb34b983b 100644
--- a/src/core/raster/qgsrasterdataprovider.h
+++ b/src/core/raster/qgsrasterdataprovider.h
@@ -538,15 +538,15 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRast
      * Read block of data
      * \note not available in Python bindings
      */
-    virtual void readBlock( int bandNo, int xBlock, int yBlock, void *data ) SIP_SKIP
-    { Q_UNUSED( bandNo ); Q_UNUSED( xBlock ); Q_UNUSED( yBlock ); Q_UNUSED( data ); }
+    virtual bool readBlock( int bandNo, int xBlock, int yBlock, void *data ) SIP_SKIP
+    { Q_UNUSED( bandNo ) Q_UNUSED( xBlock ); Q_UNUSED( yBlock ); Q_UNUSED( data ); return false; }
 
     /**
      * Read block of data using give extent and size
      * \note not available in Python bindings
      */
-    virtual void readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) SIP_SKIP
-    { Q_UNUSED( bandNo ); Q_UNUSED( viewExtent ); Q_UNUSED( width ); Q_UNUSED( height ); Q_UNUSED( data ); Q_UNUSED( feedback ); }
+    virtual bool readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) SIP_SKIP
+    { Q_UNUSED( bandNo ) Q_UNUSED( viewExtent ); Q_UNUSED( width ); Q_UNUSED( height ); Q_UNUSED( data ); Q_UNUSED( feedback ); return false; }
 
     //! Returns true if user no data contains value
     bool userNoDataValuesContains( int bandNo, double value ) const;
diff --git a/src/core/raster/qgsrasterinterface.h b/src/core/raster/qgsrasterinterface.h
index 96c184a678..233fbf8cd5 100644
--- a/src/core/raster/qgsrasterinterface.h
+++ b/src/core/raster/qgsrasterinterface.h
@@ -77,6 +77,23 @@ class CORE_EXPORT QgsRasterBlockFeedback : public QgsFeedback
      */
     void setRenderPartialOutput( bool enable ) { mRenderPartialOutput = enable; }
 
+    /**
+     * Appends an error message to the stored list of errors. Should be called
+     * whenever an error is encountered while retrieving a raster block.
+     *
+     * \see errors()
+     * \since QGIS 3.8.0
+     */
+    void appendError( const QString &error ) { mErrors.append( error ); }
+
+    /**
+     * Returns a list of any errors encountered while retrieving the raster block.
+     *
+     * \see appendError()
+     * \since QGIS 3.8.0
+     */
+    QStringList errors() const { return mErrors; }
+
   private:
 
     /**
@@ -87,6 +104,9 @@ class CORE_EXPORT QgsRasterBlockFeedback : public QgsFeedback
 
     //! Whether our painter is drawing to a temporary image used just by this layer
     bool mRenderPartialOutput = false;
+
+    //! List of errors encountered while retrieving block
+    QStringList mErrors;
 };
 
 
@@ -358,8 +378,8 @@ class CORE_EXPORT QgsRasterInterface
       maximum = PyFloat_AsDouble( a3 );
     }
 
-    QgsRasterHistogram h = sipCpp->histogram( a0, a1, minimum, maximum, *a4, a5, a6, a7 );
-    sipRes = &h;
+    QgsRasterHistogram *h = new QgsRasterHistogram( sipCpp->histogram( a0, a1, minimum, maximum, *a4, a5, a6, a7 ) );
+    return sipConvertFromType( h, sipType_QgsRasterHistogram, Py_None );
     % End
 #endif
 
diff --git a/src/core/raster/qgsrasterlayerrenderer.cpp b/src/core/raster/qgsrasterlayerrenderer.cpp
index 3ad799c251..e356647cc1 100644
--- a/src/core/raster/qgsrasterlayerrenderer.cpp
+++ b/src/core/raster/qgsrasterlayerrenderer.cpp
@@ -271,6 +271,12 @@ bool QgsRasterLayerRenderer::render()
   QgsRasterDrawer drawer( &iterator );
   drawer.draw( mPainter, mRasterViewPort, mMapToPixel, mFeedback );
 
+  const QStringList errors = mFeedback->errors();
+  for ( const QString &error : errors )
+  {
+    mErrors.append( error );
+  }
+
   QgsDebugMsgLevel( QStringLiteral( "total raster draw time (ms):     %1" ).arg( time.elapsed(), 5 ), 4 );
 
   return true;
diff --git a/src/core/symbology/qgsarrowsymbollayer.cpp b/src/core/symbology/qgsarrowsymbollayer.cpp
index 8669cf4e03..c4dea0f441 100644
--- a/src/core/symbology/qgsarrowsymbollayer.cpp
+++ b/src/core/symbology/qgsarrowsymbollayer.cpp
@@ -727,6 +727,9 @@ void QgsArrowSymbolLayer::renderPolyline( const QPolygonF &points, QgsSymbolRend
     {
       for ( int pIdx = 0; pIdx < points.size() - 1; pIdx += 2 )
       {
+        if ( context.renderContext().renderingStopped() )
+          break;
+
         mExpressionScope->addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_GEOMETRY_POINT_NUM, pIdx + 1, true ) );
         _resolveDataDefined( context );
 
@@ -778,6 +781,9 @@ void QgsArrowSymbolLayer::renderPolyline( const QPolygonF &points, QgsSymbolRend
       // only straight arrows
       for ( int pIdx = 0; pIdx < points.size() - 1; pIdx++ )
       {
+        if ( context.renderContext().renderingStopped() )
+          break;
+
         mExpressionScope->addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_GEOMETRY_POINT_NUM, pIdx + 1, true ) );
         _resolveDataDefined( context );
 
diff --git a/src/core/symbology/qgsfillsymbollayer.cpp b/src/core/symbology/qgsfillsymbollayer.cpp
index aa40282fcd..537b5b2ae7 100644
--- a/src/core/symbology/qgsfillsymbollayer.cpp
+++ b/src/core/symbology/qgsfillsymbollayer.cpp
@@ -1237,11 +1237,11 @@ void QgsShapeburstFillSymbolLayer::renderPolygon( const QPolygonF &points, QList
   imgPainter.end();
 
   //apply distance transform to image, uses the current color ramp to calculate final pixel colors
-  double *dtArray = distanceTransform( fillImage.get() );
+  double *dtArray = distanceTransform( fillImage.get(), context.renderContext() );
 
   //copy distance transform values back to QImage, shading by appropriate color ramp
   dtArrayToQImage( dtArray, fillImage.get(), mColorType == QgsShapeburstFillSymbolLayer::SimpleTwoColor ? twoColorGradientRamp.get() : mGradientRamp.get(),
-                   context.opacity(), useWholeShape, outputPixelMaxDist );
+                   context.renderContext(), context.opacity(), useWholeShape, outputPixelMaxDist );
 
   //clean up some variables
   delete [] dtArray;
@@ -1314,7 +1314,7 @@ void QgsShapeburstFillSymbolLayer::distanceTransform1d( double *f, int n, int *v
 }
 
 /* distance transform of 2d function using squared distance */
-void QgsShapeburstFillSymbolLayer::distanceTransform2d( double *im, int width, int height )
+void QgsShapeburstFillSymbolLayer::distanceTransform2d( double *im, int width, int height, QgsRenderContext &context )
 {
   int maxDimension = std::max( width, height );
   double *f = new double[ maxDimension ];
@@ -1325,6 +1325,9 @@ void QgsShapeburstFillSymbolLayer::distanceTransform2d( double *im, int width, i
   // transform along columns
   for ( int x = 0; x < width; x++ )
   {
+    if ( context.renderingStopped() )
+      break;
+
     for ( int y = 0; y < height; y++ )
     {
       f[y] = im[ x + y * width ];
@@ -1339,6 +1342,9 @@ void QgsShapeburstFillSymbolLayer::distanceTransform2d( double *im, int width, i
   // transform along rows
   for ( int y = 0; y < height; y++ )
   {
+    if ( context.renderingStopped() )
+      break;
+
     for ( int x = 0; x < width; x++ )
     {
       f[x] = im[  x + y * width ];
@@ -1357,7 +1363,7 @@ void QgsShapeburstFillSymbolLayer::distanceTransform2d( double *im, int width, i
 }
 
 /* distance transform of a binary QImage */
-double *QgsShapeburstFillSymbolLayer::distanceTransform( QImage *im )
+double *QgsShapeburstFillSymbolLayer::distanceTransform( QImage *im, QgsRenderContext &context )
 {
   int width = im->width();
   int height = im->height();
@@ -1369,6 +1375,9 @@ double *QgsShapeburstFillSymbolLayer::distanceTransform( QImage *im )
   int idx = 0;
   for ( int heightIndex = 0; heightIndex < height; ++heightIndex )
   {
+    if ( context.renderingStopped() )
+      break;
+
     const QRgb *scanLine = reinterpret_cast< const QRgb * >( im->constScanLine( heightIndex ) );
     for ( int widthIndex = 0; widthIndex < width; ++widthIndex )
     {
@@ -1388,12 +1397,12 @@ double *QgsShapeburstFillSymbolLayer::distanceTransform( QImage *im )
   }
 
   //calculate squared distance transform
-  distanceTransform2d( dtArray, width, height );
+  distanceTransform2d( dtArray, width, height, context );
 
   return dtArray;
 }
 
-void QgsShapeburstFillSymbolLayer::dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, double layerAlpha, bool useWholeShape, int maxPixelDistance )
+void QgsShapeburstFillSymbolLayer::dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, QgsRenderContext &context, double layerAlpha, bool useWholeShape, int maxPixelDistance )
 {
   int width = im->width();
   int height = im->height();
@@ -1431,6 +1440,9 @@ void QgsShapeburstFillSymbolLayer::dtArrayToQImage( double *array, QImage *im, Q
 
   for ( int heightIndex = 0; heightIndex < height; ++heightIndex )
   {
+    if ( context.renderingStopped() )
+      break;
+
     QRgb *scanLine = reinterpret_cast< QRgb * >( im->scanLine( heightIndex ) );
     for ( int widthIndex = 0; widthIndex < width; ++widthIndex )
     {
@@ -1722,11 +1734,10 @@ QgsSVGFillSymbolLayer::QgsSVGFillSymbolLayer( const QString &svgFilePath, double
   : QgsImageFillSymbolLayer()
   , mPatternWidth( width )
 {
-  setSvgFilePath( svgFilePath );
   mStrokeWidth = 0.3;
   mAngle = angle;
   mColor = QColor( 255, 255, 255 );
-  setDefaultSvgParams();
+  setSvgFilePath( svgFilePath );
 }
 
 QgsSVGFillSymbolLayer::QgsSVGFillSymbolLayer( const QByteArray &svgData, double width, double angle )
diff --git a/src/core/symbology/qgsfillsymbollayer.h b/src/core/symbology/qgsfillsymbollayer.h
index fbbe8a59bf..26b4d345f2 100644
--- a/src/core/symbology/qgsfillsymbollayer.h
+++ b/src/core/symbology/qgsfillsymbollayer.h
@@ -611,12 +611,12 @@ class CORE_EXPORT QgsShapeburstFillSymbolLayer : public QgsFillSymbolLayer
     /* distance transform of a 1d function using squared distance */
     void distanceTransform1d( double *f, int n, int *v, double *z, double *d );
     /* distance transform of 2d function using squared distance */
-    void distanceTransform2d( double *im, int width, int height );
+    void distanceTransform2d( double *im, int width, int height, QgsRenderContext &context );
     /* distance transform of a binary QImage */
-    double *distanceTransform( QImage *im );
+    double *distanceTransform( QImage *im, QgsRenderContext &context );
 
     /* fills a QImage with values from an array of doubles containing squared distance transform values */
-    void dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, double layerAlpha = 1, bool useWholeShape = true, int maxPixelDistance = 0 );
+    void dtArrayToQImage( double *array, QImage *im, QgsColorRamp *ramp, QgsRenderContext &context, double layerAlpha = 1, bool useWholeShape = true, int maxPixelDistance = 0 );
 
 #ifdef SIP_RUN
     QgsShapeburstFillSymbolLayer( const QgsShapeburstFillSymbolLayer &other );
diff --git a/src/core/symbology/qgsheatmaprenderer.cpp b/src/core/symbology/qgsheatmaprenderer.cpp
index 910cd9c2c6..7f37ff8e7a 100644
--- a/src/core/symbology/qgsheatmaprenderer.cpp
+++ b/src/core/symbology/qgsheatmaprenderer.cpp
@@ -148,6 +148,9 @@ bool QgsHeatmapRenderer::renderFeature( const QgsFeature &feature, QgsRenderCont
     int pointY = pixel.y() / mRenderQuality;
     for ( int x = std::max( pointX - mRadiusPixels, 0 ); x < std::min( pointX + mRadiusPixels, width ); ++x )
     {
+      if ( context.renderingStopped() )
+        break;
+
       for ( int y = std::max( pointY - mRadiusPixels, 0 ); y < std::min( pointY + mRadiusPixels, height ); ++y )
       {
         int index = y * width + x;
@@ -221,7 +224,7 @@ void QgsHeatmapRenderer::stopRender( QgsRenderContext &context )
 
 void QgsHeatmapRenderer::renderImage( QgsRenderContext &context )
 {
-  if ( !context.painter() || !mGradientRamp )
+  if ( !context.painter() || !mGradientRamp || context.renderingStopped() )
   {
     return;
   }
@@ -238,6 +241,9 @@ void QgsHeatmapRenderer::renderImage( QgsRenderContext &context )
   QColor pixColor;
   for ( int heightIndex = 0; heightIndex < image.height(); ++heightIndex )
   {
+    if ( context.renderingStopped() )
+      break;
+
     QRgb *scanLine = reinterpret_cast< QRgb * >( image.scanLine( heightIndex ) );
     for ( int widthIndex = 0; widthIndex < image.width(); ++widthIndex )
     {
diff --git a/src/core/symbology/qgsheatmaprenderer.h b/src/core/symbology/qgsheatmaprenderer.h
index 85dae35d1e..dde320c913 100644
--- a/src/core/symbology/qgsheatmaprenderer.h
+++ b/src/core/symbology/qgsheatmaprenderer.h
@@ -45,7 +45,7 @@ class CORE_EXPORT QgsHeatmapRenderer : public QgsFeatureRenderer
     //reimplemented methods
     QgsHeatmapRenderer *clone() const override SIP_FACTORY;
     void startRender( QgsRenderContext &context, const QgsFields &fields ) override;
-    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
+    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
     void stopRender( QgsRenderContext &context ) override;
     //! \note symbolForFeature2 in Python bindings
     QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
diff --git a/src/core/symbology/qgsinvertedpolygonrenderer.cpp b/src/core/symbology/qgsinvertedpolygonrenderer.cpp
index 50dd73e2c8..c5b4b53f64 100644
--- a/src/core/symbology/qgsinvertedpolygonrenderer.cpp
+++ b/src/core/symbology/qgsinvertedpolygonrenderer.cpp
@@ -111,7 +111,6 @@ void QgsInvertedPolygonRenderer::startRender( QgsRenderContext &context, const Q
   // We compute coordinates of the extent which will serve as exterior ring
   // for the final polygon
   // It must be computed in the destination CRS if reprojection is enabled.
-  const QgsMapToPixel &mtp( context.mapToPixel() );
 
   if ( !context.painter() )
   {
@@ -119,15 +118,16 @@ void QgsInvertedPolygonRenderer::startRender( QgsRenderContext &context, const Q
   }
 
   // convert viewport to dest CRS
-  QRect e( context.painter()->viewport() );
   // add some space to hide borders and tend to infinity
-  e.adjust( -e.width() * 5, -e.height() * 5, e.width() * 5, e.height() * 5 );
+  const double buffer = std::max( context.mapExtent().width(), context.mapExtent().height() ) * 0.1;
+  const QRectF outer = context.mapExtent().buffered( buffer ).toRectF();
   QgsPolylineXY exteriorRing;
-  exteriorRing << mtp.toMapCoordinates( e.topLeft() );
-  exteriorRing << mtp.toMapCoordinates( e.topRight() );
-  exteriorRing << mtp.toMapCoordinates( e.bottomRight() );
-  exteriorRing << mtp.toMapCoordinates( e.bottomLeft() );
-  exteriorRing << mtp.toMapCoordinates( e.topLeft() );
+  exteriorRing.reserve( 5 );
+  exteriorRing << outer.topLeft();
+  exteriorRing << outer.topRight();
+  exteriorRing << outer.bottomRight();
+  exteriorRing << outer.bottomLeft();
+  exteriorRing << outer.topLeft();
 
   // copy the rendering context
   mContext = context;
@@ -142,8 +142,7 @@ void QgsInvertedPolygonRenderer::startRender( QgsRenderContext &context, const Q
     // disable projection
     mContext.setCoordinateTransform( QgsCoordinateTransform() );
     // recompute extent so that polygon clipping is correct
-    QRect v( context.painter()->viewport() );
-    mContext.setExtent( QgsRectangle( mtp.toMapCoordinates( v.topLeft() ), mtp.toMapCoordinates( v.bottomRight() ) ) );
+    mContext.setExtent( context.mapExtent() );
     // do we have to recompute the MapToPixel ?
   }
 
@@ -246,6 +245,11 @@ bool QgsInvertedPolygonRenderer::renderFeature( const QgsFeature &feature, QgsRe
 void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext &context )
 {
   QgsFeatureRenderer::stopRender( context );
+  if ( context.renderingStopped() )
+  {
+    mSubRenderer->stopRender( mContext );
+    return;
+  }
 
   if ( !mSubRenderer )
   {
diff --git a/src/core/symbology/qgsinvertedpolygonrenderer.h b/src/core/symbology/qgsinvertedpolygonrenderer.h
index bc699456d8..c6984c81e3 100644
--- a/src/core/symbology/qgsinvertedpolygonrenderer.h
+++ b/src/core/symbology/qgsinvertedpolygonrenderer.h
@@ -67,7 +67,7 @@ class CORE_EXPORT QgsInvertedPolygonRenderer : public QgsFeatureRenderer
      * \param drawVertexMarker whether this feature has vertex markers (in edit mode usually)
      * \returns true if the rendering was OK
      */
-    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
+    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
 
     /**
      * The actual rendering will take place here.
diff --git a/src/core/symbology/qgslinesymbollayer.cpp b/src/core/symbology/qgslinesymbollayer.cpp
index 934407caf8..c61ce36651 100644
--- a/src/core/symbology/qgslinesymbollayer.cpp
+++ b/src/core/symbology/qgslinesymbollayer.cpp
@@ -1019,6 +1019,9 @@ void QgsMarkerLineSymbolLayer::renderPolylineInterval( const QPolygonF &points,
   int pointNum = 0;
   for ( int i = 1; i < points.count(); ++i )
   {
+    if ( context.renderContext().renderingStopped() )
+      break;
+
     const QPointF &pt = points[i];
 
     if ( lastPt == pt ) // must not be equal!
@@ -1044,6 +1047,9 @@ void QgsMarkerLineSymbolLayer::renderPolylineInterval( const QPolygonF &points,
     // while we're not at the end of line segment, draw!
     while ( lengthLeft > painterUnitInterval )
     {
+      if ( context.renderContext().renderingStopped() )
+        break;
+
       // "c" is 1 for regular point or in interval (0,1] for begin of line segment
       lastPt += c * diff;
       lengthLeft -= painterUnitInterval;
@@ -1108,6 +1114,9 @@ void QgsMarkerLineSymbolLayer::renderPolylineVertex( const QPolygonF &points, Qg
     int pointNum = 0;
     while ( context.renderContext().geometry()->nextVertex( vId, vPoint ) )
     {
+      if ( context.renderContext().renderingStopped() )
+        break;
+
       scope->addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_GEOMETRY_POINT_NUM, ++pointNum, true ) );
 
       if ( ( placement == Vertex && vId.type == QgsVertexId::SegmentVertex )
diff --git a/src/core/symbology/qgsnullsymbolrenderer.h b/src/core/symbology/qgsnullsymbolrenderer.h
index ee21003efa..cdcfc64443 100644
--- a/src/core/symbology/qgsnullsymbolrenderer.h
+++ b/src/core/symbology/qgsnullsymbolrenderer.h
@@ -37,7 +37,7 @@ class CORE_EXPORT QgsNullSymbolRenderer : public QgsFeatureRenderer
     QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
     QgsSymbol *originalSymbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
 
-    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
+    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
     void stopRender( QgsRenderContext &context ) override;
     bool willRenderFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
 
diff --git a/src/core/symbology/qgspointdistancerenderer.cpp b/src/core/symbology/qgspointdistancerenderer.cpp
index 66e4800140..c3327d18fb 100644
--- a/src/core/symbology/qgspointdistancerenderer.cpp
+++ b/src/core/symbology/qgspointdistancerenderer.cpp
@@ -326,9 +326,12 @@ void QgsPointDistanceRenderer::stopRender( QgsRenderContext &context )
 
   //printInfoDisplacementGroups(); //just for debugging
 
-  Q_FOREACH ( const ClusteredGroup &group, mClusteredGroups )
+  if ( !context.renderingStopped() )
   {
-    drawGroup( group, context );
+    Q_FOREACH ( const ClusteredGroup &group, mClusteredGroups )
+    {
+      drawGroup( group, context );
+    }
   }
 
   mClusteredGroups.clear();
diff --git a/src/core/symbology/qgspointdistancerenderer.h b/src/core/symbology/qgspointdistancerenderer.h
index be2f7403e9..b206d1cf7d 100644
--- a/src/core/symbology/qgspointdistancerenderer.h
+++ b/src/core/symbology/qgspointdistancerenderer.h
@@ -84,7 +84,7 @@ class CORE_EXPORT QgsPointDistanceRenderer: public QgsFeatureRenderer
     QgsPointDistanceRenderer( const QString &rendererName, const QString &labelAttributeName = QString() );
 
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props = QgsStringMap() ) const override;
-    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
+    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
     QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
     bool filterNeedsGeometry() const override;
     QgsFeatureRenderer::Capabilities capabilities() override;
diff --git a/src/core/symbology/qgsrenderer.h b/src/core/symbology/qgsrenderer.h
index 7fc9c9f7f6..61589cdaf0 100644
--- a/src/core/symbology/qgsrenderer.h
+++ b/src/core/symbology/qgsrenderer.h
@@ -228,7 +228,7 @@ class CORE_EXPORT QgsFeatureRenderer
      * \see startRender()
      * \see stopRender()
      */
-    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
+    virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) SIP_THROW( QgsCsException );
 
     //! Returns debug information about this renderer
     virtual QString dump() const;
@@ -468,12 +468,7 @@ class CORE_EXPORT QgsFeatureRenderer
      * specify if it should be rendered as selected and \a drawVertexMarker
      * to specify if vertex markers should be rendered.
      */
-    void renderFeatureWithSymbol( const QgsFeature &feature,
-                                  QgsSymbol *symbol,
-                                  QgsRenderContext &context,
-                                  int layer,
-                                  bool selected,
-                                  bool drawVertexMarker );
+    void renderFeatureWithSymbol( const QgsFeature &feature, QgsSymbol *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker ) SIP_THROW( QgsCsException );
 
     //! render editing vertex marker at specified point
     void renderVertexMarker( QPointF pt, QgsRenderContext &context );
diff --git a/src/core/symbology/qgsrulebasedrenderer.cpp b/src/core/symbology/qgsrulebasedrenderer.cpp
index e2c455e2bc..0270ae34f3 100644
--- a/src/core/symbology/qgsrulebasedrenderer.cpp
+++ b/src/core/symbology/qgsrulebasedrenderer.cpp
@@ -929,26 +929,29 @@ void QgsRuleBasedRenderer::stopRender( QgsRenderContext &context )
   //
 
   // go through all levels
-  Q_FOREACH ( const RenderLevel &level, mRenderQueue )
+  if ( !context.renderingStopped() )
   {
-    //QgsDebugMsg(QString("level %1").arg(level.zIndex));
-    // go through all jobs at the level
-    Q_FOREACH ( const RenderJob *job, level.jobs )
+    Q_FOREACH ( const RenderLevel &level, mRenderQueue )
     {
-      context.expressionContext().setFeature( job->ftr.feat );
-      //QgsDebugMsg(QString("job fid %1").arg(job->f->id()));
-      // render feature - but only with symbol layers with specified zIndex
-      QgsSymbol *s = job->symbol;
-      int count = s->symbolLayerCount();
-      for ( int i = 0; i < count; i++ )
+      //QgsDebugMsg(QString("level %1").arg(level.zIndex));
+      // go through all jobs at the level
+      Q_FOREACH ( const RenderJob *job, level.jobs )
       {
-        // TODO: better solution for this
-        // renderFeatureWithSymbol asks which symbol layer to draw
-        // but there are multiple transforms going on!
-        if ( s->symbolLayer( i )->renderingPass() == level.zIndex )
+        context.expressionContext().setFeature( job->ftr.feat );
+        //QgsDebugMsg(QString("job fid %1").arg(job->f->id()));
+        // render feature - but only with symbol layers with specified zIndex
+        QgsSymbol *s = job->symbol;
+        int count = s->symbolLayerCount();
+        for ( int i = 0; i < count; i++ )
         {
-          int flags = job->ftr.flags;
-          renderFeatureWithSymbol( job->ftr.feat, job->symbol, context, i, flags & FeatIsSelected, flags & FeatDrawMarkers );
+          // TODO: better solution for this
+          // renderFeatureWithSymbol asks which symbol layer to draw
+          // but there are multiple transforms going on!
+          if ( s->symbolLayer( i )->renderingPass() == level.zIndex )
+          {
+            int flags = job->ftr.flags;
+            renderFeatureWithSymbol( job->ftr.feat, job->symbol, context, i, flags & FeatIsSelected, flags & FeatDrawMarkers );
+          }
         }
       }
     }
diff --git a/src/core/symbology/qgsrulebasedrenderer.h b/src/core/symbology/qgsrulebasedrenderer.h
index 882f40ea90..b0b8faab2c 100644
--- a/src/core/symbology/qgsrulebasedrenderer.h
+++ b/src/core/symbology/qgsrulebasedrenderer.h
@@ -476,7 +476,7 @@ class CORE_EXPORT QgsRuleBasedRenderer : public QgsFeatureRenderer
     //! Returns symbol for current feature. Should not be used individually: there could be more symbols for a feature
     QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
 
-    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
+    bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
 
     void startRender( QgsRenderContext &context, const QgsFields &fields ) override;
 
diff --git a/src/core/symbology/qgssymbol.cpp b/src/core/symbology/qgssymbol.cpp
index cf81800dc7..b898f7760e 100644
--- a/src/core/symbology/qgssymbol.cpp
+++ b/src/core/symbology/qgssymbol.cpp
@@ -733,6 +733,9 @@ class GeometryRestorer
 
 void QgsSymbol::renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker, int currentVertexMarkerType, double currentVertexMarkerSize )
 {
+  if ( context.renderingStopped() )
+    return;
+
   const QgsGeometry geom = feature.geometry();
   if ( geom.isNull() )
   {
@@ -886,6 +889,9 @@ void QgsSymbol::renderFeature( const QgsFeature &feature, QgsRenderContext &cont
 
       for ( int i = 0; i < mp.numGeometries(); ++i )
       {
+        if ( context.renderingStopped() )
+          break;
+
         mSymbolRenderContext->setGeometryPartNum( i + 1 );
         if ( needsExpressionContext )
           mSymbolRenderContext->expressionContextScope()->addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_GEOMETRY_PART_NUM, i + 1, true ) );
@@ -916,6 +922,9 @@ void QgsSymbol::renderFeature( const QgsFeature &feature, QgsRenderContext &cont
       const unsigned int num = geomCollection.numGeometries();
       for ( unsigned int i = 0; i < num; ++i )
       {
+        if ( context.renderingStopped() )
+          break;
+
         mSymbolRenderContext->setGeometryPartNum( i + 1 );
         if ( needsExpressionContext )
           mSymbolRenderContext->expressionContextScope()->addVariable( QgsExpressionContextScope::StaticVariable( QgsExpressionContext::EXPR_GEOMETRY_PART_NUM, i + 1, true ) );
@@ -967,6 +976,9 @@ void QgsSymbol::renderFeature( const QgsFeature &feature, QgsRenderContext &cont
         const QList<unsigned int> &listPartIndex = iter->second;
         for ( int idx = 0; idx < listPartIndex.size(); ++idx )
         {
+          if ( context.renderingStopped() )
+            break;
+
           const unsigned i = listPartIndex[idx];
           mSymbolRenderContext->setGeometryPartNum( i + 1 );
           if ( needsExpressionContext )
@@ -1013,7 +1025,7 @@ void QgsSymbol::renderFeature( const QgsFeature &feature, QgsRenderContext &cont
 
   if ( drawVertexMarker )
   {
-    if ( !markers.isEmpty() )
+    if ( !markers.isEmpty() && !context.renderingStopped() )
     {
       Q_FOREACH ( QPointF marker, markers )
       {
@@ -1540,6 +1552,9 @@ void QgsMarkerSymbol::renderPoint( QPointF point, const QgsFeature *f, QgsRender
 
   Q_FOREACH ( QgsSymbolLayer *symbolLayer, mLayers )
   {
+    if ( context.renderingStopped() )
+      break;
+
     if ( !symbolLayer->enabled() )
       continue;
 
@@ -1770,6 +1785,9 @@ void QgsLineSymbol::renderPolyline( const QPolygonF &points, const QgsFeature *f
 
   Q_FOREACH ( QgsSymbolLayer *symbolLayer, mLayers )
   {
+    if ( context.renderingStopped() )
+      break;;
+
     if ( !symbolLayer->enabled() )
       continue;
 
@@ -1851,6 +1869,9 @@ void QgsFillSymbol::renderPolygon( const QPolygonF &points, QList<QPolygonF> *ri
 
   Q_FOREACH ( QgsSymbolLayer *symbolLayer, mLayers )
   {
+    if ( context.renderingStopped() )
+      break;
+
     if ( !symbolLayer->enabled() )
       continue;
 
diff --git a/src/core/symbology/qgssymbol.h b/src/core/symbology/qgssymbol.h
index 16f482d04a..1ae5670c71 100644
--- a/src/core/symbology/qgssymbol.h
+++ b/src/core/symbology/qgssymbol.h
@@ -429,7 +429,7 @@ class CORE_EXPORT QgsSymbol
      * Render a feature. Before calling this the startRender() method should be called to initialize
      * the rendering process. After rendering all features stopRender() must be called.
      */
-    void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 );
+    void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 ) SIP_THROW( QgsCsException );
 
     /**
      * Returns the symbol render context. Only valid between startRender and stopRender calls.
diff --git a/src/crashhandler/qgscrashdialog.cpp b/src/crashhandler/qgscrashdialog.cpp
index afa51df170..60f3832e4b 100644
--- a/src/crashhandler/qgscrashdialog.cpp
+++ b/src/crashhandler/qgscrashdialog.cpp
@@ -65,8 +65,8 @@ void QgsCrashDialog::on_mUserFeedbackText_textChanged()
 void QgsCrashDialog::createBugReport()
 {
   QClipboard *clipboard = QApplication::clipboard();
-  QString userText = "h2. User Feedback\n\n" + mUserFeedbackText->toPlainText();
-  QString details = "h2. Report Details\n\n" + mReportData;
+  QString userText = "## User Feedback\n\n" + mUserFeedbackText->toPlainText();
+  QString details = "## Report Details\n\n" + mReportData;
   QString finalText = userText + "\n\n" + details;
   QString markdown = htmlToMarkdown( finalText );
   clipboard->setText( markdown );
@@ -87,7 +87,6 @@ QString QgsCrashDialog::htmlToMarkdown( const QString &html )
   markdown.replace( QLatin1String( "<br>" ), QLatin1String( "\n" ) );
   markdown.replace( QLatin1String( "<b>" ), QLatin1String( "*" ) );
   markdown.replace( QLatin1String( "</b>" ), QLatin1String( "*" ) );
-  markdown.replace( QLatin1String( "QGIS code revision: " ), QLatin1String( "QGIS code revision: commit:" ) );
   return markdown;
 }
 
diff --git a/src/crashhandler/qgscrashreport.cpp b/src/crashhandler/qgscrashreport.cpp
index 0514451202..54526d7737 100644
--- a/src/crashhandler/qgscrashreport.cpp
+++ b/src/crashhandler/qgscrashreport.cpp
@@ -40,7 +40,6 @@ const QString QgsCrashReport::toMarkdown()
   markdown.replace( QLatin1String( "<br>" ), QLatin1String( "\n" ) );
   markdown.replace( QLatin1String( "<b>" ), QLatin1String( "*" ) );
   markdown.replace( QLatin1String( "</b>" ), QLatin1String( "*" ) );
-  markdown.replace( QLatin1String( "QGIS code revision: " ), QLatin1String( "QGIS code revision: commit:" ) );
   return markdown;
 }
 
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
index 3df59d9a70..e9ef3269ba 100644
--- a/src/gui/CMakeLists.txt
+++ b/src/gui/CMakeLists.txt
@@ -454,6 +454,7 @@ SET(QGIS_GUI_MOC_HDRS
   qgsgradientcolorrampdialog.h
   qgsgradientstopeditor.h
   qgsgroupwmsdatadialog.h
+  qgsgui.h
   qgshistogramwidget.h
   qgshighlight.h
   qgsidentifymenu.h
@@ -770,7 +771,6 @@ SET(QGIS_GUI_HDRS
   qgsdetaileditemdata.h
   qgsexpressionbuilderdialog.h
   qgsgeometryrubberband.h
-  qgsgui.h
   qgsguiutils.h
   qgshelp.h
   qgshighlight.h
@@ -936,6 +936,7 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}/src/core/metadata
   ${CMAKE_SOURCE_DIR}/src/core/processing
   ${CMAKE_SOURCE_DIR}/src/core/mesh
+  ${CMAKE_SOURCE_DIR}/src/core/pal
   ${CMAKE_SOURCE_DIR}/src/core/providers/memory
   ${CMAKE_SOURCE_DIR}/src/core/raster
   ${CMAKE_SOURCE_DIR}/src/core/scalebar
diff --git a/src/gui/attributetable/qgsdualview.h b/src/gui/attributetable/qgsdualview.h
index b4a204e373..14735ff795 100644
--- a/src/gui/attributetable/qgsdualview.h
+++ b/src/gui/attributetable/qgsdualview.h
@@ -23,7 +23,6 @@
 
 #include "qgsattributeeditorcontext.h"
 #include "qgsattributetablefiltermodel.h"
-#include "qgsdistancearea.h"
 #include "qgsattributeform.h"
 #include "qgis_gui.h"
 
@@ -384,7 +383,6 @@ class GUI_EXPORT QgsDualView : public QStackedWidget, private Ui::QgsDualViewBas
     QPointer< QgsVectorLayer > mLayer = nullptr;
     QProgressDialog *mProgressDlg = nullptr;
     QgsIFeatureSelectionManager *mFeatureSelectionManager = nullptr;
-    QgsDistanceArea mDistanceArea;
     QString mDisplayExpression;
     QgsAttributeTableConfig mConfig;
     QgsScrollArea *mAttributeEditorScrollArea = nullptr;
diff --git a/src/gui/editorwidgets/qgsdatetimeedit.cpp b/src/gui/editorwidgets/qgsdatetimeedit.cpp
index 37e21cdf80..5f7b4dbcac 100644
--- a/src/gui/editorwidgets/qgsdatetimeedit.cpp
+++ b/src/gui/editorwidgets/qgsdatetimeedit.cpp
@@ -62,7 +62,11 @@ void QgsDateTimeEdit::clear()
   {
     displayNull();
 
-    changed( QDateTime() );
+    // Check if it's really changed or crash, see GH #29937
+    if ( ! dateTime().isNull() )
+    {
+      changed( QDateTime() );
+    }
 
     // emit signal of QDateTime::dateTimeChanged with an invalid date
     // anyway, using parent's signal should be avoided
@@ -252,7 +256,8 @@ void QgsDateTimeEdit::setDateTime( const QDateTime &dateTime )
   {
     clear();
   }
-  else
+  // Check if it's really changed or crash, see GH #29937
+  else if ( dateTime != QgsDateTimeEdit::dateTime() )
   {
     QDateTimeEdit::setDateTime( dateTime );
     changed( dateTime );
diff --git a/src/gui/editorwidgets/qgsrelationreferencewidget.cpp b/src/gui/editorwidgets/qgsrelationreferencewidget.cpp
index 2a8e8ce33c..e08a3a0849 100644
--- a/src/gui/editorwidgets/qgsrelationreferencewidget.cpp
+++ b/src/gui/editorwidgets/qgsrelationreferencewidget.cpp
@@ -40,7 +40,7 @@
 #include "qgsmaptoolidentifyfeature.h"
 #include "qgsfeatureiterator.h"
 #include "qgsfeaturelistcombobox.h"
-
+#include "qgsfeaturefiltermodel.h"
 
 QgsRelationReferenceWidget::QgsRelationReferenceWidget( QWidget *parent )
   : QWidget( parent )
@@ -744,7 +744,7 @@ void QgsRelationReferenceWidget::featureIdentified( const QgsFeature &feature )
   }
   else
   {
-    mComboBox->setCurrentIndex( mComboBox->findData( feature.id(), QgsAttributeTableModel::FeatureIdRole ) );
+    mComboBox->setCurrentIndex( mComboBox->findData( feature.attribute( mReferencedFieldIdx ), QgsFeatureFilterModel::Role::IdentifierValueRole ) );
     mFeature = feature;
   }
 
diff --git a/src/gui/editorwidgets/qgsrelationreferencewidget.h b/src/gui/editorwidgets/qgsrelationreferencewidget.h
index 831b4d8d31..e729f590af 100644
--- a/src/gui/editorwidgets/qgsrelationreferencewidget.h
+++ b/src/gui/editorwidgets/qgsrelationreferencewidget.h
@@ -99,7 +99,7 @@ class GUI_EXPORT QgsRelationReferenceWidget : public QWidget
     bool readOnlySelector() { return mReadOnlySelector; }
     void setReadOnlySelector( bool readOnly );
 
-    //! determines if the widge offers the possibility to select the related feature on the map (using a dedicated map tool)
+    //! determines if the widget offers the possibility to select the related feature on the map (using a dedicated map tool)
     bool allowMapIdentification() { return mAllowMapIdentification; }
     void setAllowMapIdentification( bool allowMapIdentification );
 
diff --git a/src/gui/effects/qgspainteffectwidget.cpp b/src/gui/effects/qgspainteffectwidget.cpp
index 6c06a95a44..ee30ecdcfa 100644
--- a/src/gui/effects/qgspainteffectwidget.cpp
+++ b/src/gui/effects/qgspainteffectwidget.cpp
@@ -117,12 +117,16 @@ QgsBlurWidget::QgsBlurWidget( QWidget *parent )
 {
   setupUi( this );
   connect( mBlurTypeCombo, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsBlurWidget::mBlurTypeCombo_currentIndexChanged );
-  connect( mBlurStrengthSpnBx, static_cast< void ( QSpinBox::* )( int ) >( &QSpinBox::valueChanged ), this, &QgsBlurWidget::mBlurStrengthSpnBx_valueChanged );
+  connect( mBlurStrengthSpnBx, static_cast< void ( QDoubleSpinBox::* )( double ) >( &QDoubleSpinBox::valueChanged ), this, &QgsBlurWidget::mBlurStrengthSpnBx_valueChanged );
+  connect( mBlurUnitWidget, &QgsUnitSelectionWidget::changed, this, &QgsBlurWidget::mBlurUnitWidget_changed );
   connect( mDrawModeComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsBlurWidget::mDrawModeComboBox_currentIndexChanged );
   connect( mBlendCmbBx, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsBlurWidget::mBlendCmbBx_currentIndexChanged );
 
-  mBlurTypeCombo->addItem( tr( "Stack blur (fast)" ), QgsBlurEffect::StackBlur );
-  mBlurTypeCombo->addItem( tr( "Gaussian blur (quality)" ), QgsBlurEffect::GaussianBlur );
+  mBlurTypeCombo->addItem( tr( "Stack blur (fast, doesn't support high dpi)" ), QgsBlurEffect::StackBlur );
+  mBlurTypeCombo->addItem( tr( "Gaussian blur (quality, supports high dpi)" ), QgsBlurEffect::GaussianBlur );
+
+  mBlurUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderPixels << QgsUnitTypes::RenderMapUnits
+                             << QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
 
   initGui();
   connect( mOpacityWidget, &QgsOpacityWidget::opacityChanged, this, &QgsBlurWidget::opacityChanged );
@@ -187,7 +191,7 @@ void QgsBlurWidget::mBlurTypeCombo_currentIndexChanged( int index )
   emit changed();
 }
 
-void QgsBlurWidget::mBlurStrengthSpnBx_valueChanged( int value )
+void QgsBlurWidget::mBlurStrengthSpnBx_valueChanged( double value )
 {
   if ( !mEffect )
     return;
@@ -196,6 +200,18 @@ void QgsBlurWidget::mBlurStrengthSpnBx_valueChanged( int value )
   emit changed();
 }
 
+void QgsBlurWidget::mBlurUnitWidget_changed()
+{
+  if ( !mEffect )
+  {
+    return;
+  }
+
+  mEffect->setBlurUnit( mBlurUnitWidget->unit() );
+  mEffect->setBlurMapUnitScale( mBlurUnitWidget->getMapUnitScale() );
+  emit changed();
+}
+
 void QgsBlurWidget::opacityChanged( double value )
 {
   if ( !mEffect )
@@ -244,7 +260,8 @@ QgsShadowEffectWidget::QgsShadowEffectWidget( QWidget *parent )
   connect( mShadowColorBtn, &QgsColorButton::colorChanged, this, &QgsShadowEffectWidget::mShadowColorBtn_colorChanged );
   connect( mDrawModeComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsShadowEffectWidget::mDrawModeComboBox_currentIndexChanged );
   connect( mShadowBlendCmbBx, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsShadowEffectWidget::mShadowBlendCmbBx_currentIndexChanged );
-  connect( mShadowRadiuSpnBx, static_cast< void ( QSpinBox::* )( int ) >( &QSpinBox::valueChanged ), this, &QgsShadowEffectWidget::mShadowRadiuSpnBx_valueChanged );
+  connect( mShadowRadiuSpnBx, static_cast< void ( QDoubleSpinBox::* )( double ) >( &QDoubleSpinBox::valueChanged ), this, &QgsShadowEffectWidget::mShadowRadiuSpnBx_valueChanged );
+  connect( mBlurUnitWidget, &QgsUnitSelectionWidget::changed, this, &QgsShadowEffectWidget::mBlurUnitWidget_changed );
 
   mShadowColorBtn->setAllowOpacity( false );
   mShadowColorBtn->setColorDialogTitle( tr( "Select Shadow Color" ) );
@@ -253,6 +270,8 @@ QgsShadowEffectWidget::QgsShadowEffectWidget( QWidget *parent )
 
   mOffsetUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderPixels << QgsUnitTypes::RenderMapUnits
                                << QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
+  mBlurUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderPixels << QgsUnitTypes::RenderMapUnits
+                             << QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
 
   initGui();
 
@@ -283,6 +302,8 @@ void QgsShadowEffectWidget::initGui()
   mOffsetUnitWidget->setUnit( mEffect->offsetUnit() );
   mOffsetUnitWidget->setMapUnitScale( mEffect->offsetMapUnitScale() );
   mShadowRadiuSpnBx->setValue( mEffect->blurLevel() );
+  mBlurUnitWidget->setUnit( mEffect->blurUnit() );
+  mBlurUnitWidget->setMapUnitScale( mEffect->blurMapUnitScale() );
   mOpacityWidget->setOpacity( mEffect->opacity() );
   mShadowColorBtn->setColor( mEffect->color() );
   mShadowBlendCmbBx->setBlendMode( mEffect->blendMode() );
@@ -298,6 +319,7 @@ void QgsShadowEffectWidget::blockSignals( const bool block )
   mShadowOffsetSpnBx->blockSignals( block );
   mOffsetUnitWidget->blockSignals( block );
   mShadowRadiuSpnBx->blockSignals( block );
+  mBlurUnitWidget->blockSignals( block );
   mOpacityWidget->blockSignals( block );
   mShadowColorBtn->blockSignals( block );
   mShadowBlendCmbBx->blockSignals( block );
@@ -361,7 +383,7 @@ void QgsShadowEffectWidget::mShadowColorBtn_colorChanged( const QColor &color )
   emit changed();
 }
 
-void QgsShadowEffectWidget::mShadowRadiuSpnBx_valueChanged( int value )
+void QgsShadowEffectWidget::mShadowRadiuSpnBx_valueChanged( double value )
 {
   if ( !mEffect )
     return;
@@ -370,6 +392,18 @@ void QgsShadowEffectWidget::mShadowRadiuSpnBx_valueChanged( int value )
   emit changed();
 }
 
+void QgsShadowEffectWidget::mBlurUnitWidget_changed()
+{
+  if ( !mEffect )
+  {
+    return;
+  }
+
+  mEffect->setBlurUnit( mBlurUnitWidget->unit() );
+  mEffect->setBlurMapUnitScale( mBlurUnitWidget->getMapUnitScale() );
+  emit changed();
+}
+
 void QgsShadowEffectWidget::mDrawModeComboBox_currentIndexChanged( int index )
 {
   Q_UNUSED( index );
@@ -408,7 +442,8 @@ QgsGlowWidget::QgsGlowWidget( QWidget *parent )
   connect( mColorBtn, &QgsColorButton::colorChanged, this, &QgsGlowWidget::mColorBtn_colorChanged );
   connect( mBlendCmbBx, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsGlowWidget::mBlendCmbBx_currentIndexChanged );
   connect( mDrawModeComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsGlowWidget::mDrawModeComboBox_currentIndexChanged );
-  connect( mBlurRadiusSpnBx, static_cast< void ( QSpinBox::* )( int ) >( &QSpinBox::valueChanged ), this, &QgsGlowWidget::mBlurRadiusSpnBx_valueChanged );
+  connect( mBlurRadiusSpnBx, static_cast< void ( QDoubleSpinBox::* )( double ) >( &QDoubleSpinBox::valueChanged ), this, &QgsGlowWidget::mBlurRadiusSpnBx_valueChanged );
+  connect( mBlurUnitWidget, &QgsUnitSelectionWidget::changed, this, &QgsGlowWidget::mBlurUnitWidget_changed );
 
   mColorBtn->setAllowOpacity( false );
   mColorBtn->setColorDialogTitle( tr( "Select Glow Color" ) );
@@ -416,6 +451,8 @@ QgsGlowWidget::QgsGlowWidget( QWidget *parent )
 
   mSpreadUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderPixels << QgsUnitTypes::RenderMapUnits
                                << QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
+  mBlurUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderPixels << QgsUnitTypes::RenderMapUnits
+                             << QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
 
   btnColorRamp->setShowGradientOnly( true );
 
@@ -538,7 +575,7 @@ void QgsGlowWidget::mColorBtn_colorChanged( const QColor &color )
   emit changed();
 }
 
-void QgsGlowWidget::mBlurRadiusSpnBx_valueChanged( int value )
+void QgsGlowWidget::mBlurRadiusSpnBx_valueChanged( double value )
 {
   if ( !mEffect )
     return;
@@ -547,6 +584,18 @@ void QgsGlowWidget::mBlurRadiusSpnBx_valueChanged( int value )
   emit changed();
 }
 
+void QgsGlowWidget::mBlurUnitWidget_changed()
+{
+  if ( !mEffect )
+  {
+    return;
+  }
+
+  mEffect->setBlurUnit( mBlurUnitWidget->unit() );
+  mEffect->setBlurMapUnitScale( mBlurUnitWidget->getMapUnitScale() );
+  emit changed();
+}
+
 void QgsGlowWidget::mBlendCmbBx_currentIndexChanged( int index )
 {
   Q_UNUSED( index );
diff --git a/src/gui/effects/qgspainteffectwidget.h b/src/gui/effects/qgspainteffectwidget.h
index dfb293d08e..0f785d366d 100644
--- a/src/gui/effects/qgspainteffectwidget.h
+++ b/src/gui/effects/qgspainteffectwidget.h
@@ -120,7 +120,8 @@ class GUI_EXPORT QgsBlurWidget : public QgsPaintEffectWidget, private Ui::Widget
   private slots:
 
     void mBlurTypeCombo_currentIndexChanged( int index );
-    void mBlurStrengthSpnBx_valueChanged( int value );
+    void mBlurStrengthSpnBx_valueChanged( double value );
+    void mBlurUnitWidget_changed();
     void opacityChanged( double value );
     void mDrawModeComboBox_currentIndexChanged( int index );
     void mBlendCmbBx_currentIndexChanged( int index );
@@ -161,7 +162,8 @@ class GUI_EXPORT QgsShadowEffectWidget : public QgsPaintEffectWidget, private Ui
     void mShadowColorBtn_colorChanged( const QColor &color );
     void mDrawModeComboBox_currentIndexChanged( int index );
     void mShadowBlendCmbBx_currentIndexChanged( int index );
-    void mShadowRadiuSpnBx_valueChanged( int value );
+    void mShadowRadiuSpnBx_valueChanged( double value );
+    void mBlurUnitWidget_changed();
 };
 
 
@@ -196,7 +198,8 @@ class GUI_EXPORT QgsGlowWidget : public QgsPaintEffectWidget, private Ui::Widget
     void mColorBtn_colorChanged( const QColor &color );
     void mBlendCmbBx_currentIndexChanged( int index );
     void mDrawModeComboBox_currentIndexChanged( int index );
-    void mBlurRadiusSpnBx_valueChanged( int value );
+    void mBlurRadiusSpnBx_valueChanged( double value );
+    void mBlurUnitWidget_changed();
     void applyColorRamp();
 
 };
diff --git a/src/gui/layertree/qgslayertreemapcanvasbridge.cpp b/src/gui/layertree/qgslayertreemapcanvasbridge.cpp
index b614edd6d4..9d6921a190 100644
--- a/src/gui/layertree/qgslayertreemapcanvasbridge.cpp
+++ b/src/gui/layertree/qgslayertreemapcanvasbridge.cpp
@@ -22,6 +22,8 @@
 #include "qgsmapcanvas.h"
 #include "qgsmapoverviewcanvas.h"
 #include "qgsproject.h"
+#include "qgssettings.h"
+#include "qgsgui.h"
 
 QgsLayerTreeMapCanvasBridge::QgsLayerTreeMapCanvasBridge( QgsLayerTree *root, QgsMapCanvas *canvas, QObject *parent )
   : QObject( parent )
@@ -98,7 +100,16 @@ void QgsLayerTreeMapCanvasBridge::setCanvasLayers()
 
   if ( mFirstCRS.isValid() && firstLayers )
   {
-    QgsProject::instance()->setCrs( mFirstCRS );
+    const QgsGui::ProjectCrsBehavior projectCrsBehavior = QgsSettings().enumValue( QStringLiteral( "/projections/newProjectCrsBehavior" ),  QgsGui::UseCrsOfFirstLayerAdded, QgsSettings::App );
+    switch ( projectCrsBehavior )
+    {
+      case QgsGui::UseCrsOfFirstLayerAdded:
+        QgsProject::instance()->setCrs( mFirstCRS );
+        break;
+
+      case QgsGui::UsePresetCrs:
+        break;
+    }
   }
 
   mLastLayerCount = currentSpatialLayerCount;
diff --git a/src/gui/layout/qgslayoutview.cpp b/src/gui/layout/qgslayoutview.cpp
index 32e3a641c2..5d64a3d6aa 100644
--- a/src/gui/layout/qgslayoutview.cpp
+++ b/src/gui/layout/qgslayoutview.cpp
@@ -339,7 +339,7 @@ void QgsLayoutView::copyItems( const QList<QgsLayoutItem *> &items, QgsLayoutVie
     else if ( QgsLayoutFrame *frame = qobject_cast<QgsLayoutFrame *>( item ) )
     {
       // copy multiframe too
-      if ( !copiedMultiFrames.contains( frame->multiFrame() ) )
+      if ( frame->multiFrame() && !copiedMultiFrames.contains( frame->multiFrame() ) )
       {
         frame->multiFrame()->writeXml( documentElement, doc, context );
         copiedMultiFrames.insert( frame->multiFrame() );
diff --git a/src/gui/qgsadvanceddigitizingcanvasitem.cpp b/src/gui/qgsadvanceddigitizingcanvasitem.cpp
index a6afb727a1..1af2d5556c 100644
--- a/src/gui/qgsadvanceddigitizingcanvasitem.cpp
+++ b/src/gui/qgsadvanceddigitizingcanvasitem.cpp
@@ -28,7 +28,6 @@ QgsAdvancedDigitizingCanvasItem::QgsAdvancedDigitizingCanvasItem( QgsMapCanvas *
   , mSnapPen( QPen( QColor( 127, 0, 0, 150 ), 1 ) )
   , mSnapLinePen( QPen( QColor( 127, 0, 0, 150 ), 1, Qt::DashLine ) )
   , mCursorPen( QPen( QColor( 127, 127, 127, 255 ), 1 ) )
-  , mSnapIndicator( qgis::make_unique< QgsSnapIndicator>( canvas ) )
   , mAdvancedDigitizingDockWidget( cadDockWidget )
 {
 }
@@ -238,15 +237,4 @@ void QgsAdvancedDigitizingCanvasItem::paint( QPainter *painter )
     painter->drawLine( curPointPix + QPointF( -5, +5 ),
                        curPointPix + QPointF( +5, -5 ) );
   }
-
-
-  QgsPointLocator::Match match = mAdvancedDigitizingDockWidget->mapPointMatch();
-  if ( match.isValid() )
-  {
-    mSnapIndicator->setMatch( match );
-    mSnapIndicator->setVisible( true );
-  }
-  else
-    mSnapIndicator->setVisible( false );
-
 }
diff --git a/src/gui/qgsadvanceddigitizingcanvasitem.h b/src/gui/qgsadvanceddigitizingcanvasitem.h
index 5aa15869d7..4ebfa10a26 100644
--- a/src/gui/qgsadvanceddigitizingcanvasitem.h
+++ b/src/gui/qgsadvanceddigitizingcanvasitem.h
@@ -20,7 +20,7 @@
 
 #include "qgsmapcanvasitem.h"
 #include "qgis_gui.h"
-#include "qgssnapindicator.h"
+
 
 class QgsAdvancedDigitizingDockWidget;
 
@@ -35,17 +35,13 @@ class GUI_EXPORT QgsAdvancedDigitizingCanvasItem : public QgsMapCanvasItem
 
     void paint( QPainter *painter ) override;
 
-  protected:
+  private:
     QPen mLockedPen;
     QPen mConstruction1Pen;
     QPen mConstruction2Pen;
     QPen mSnapPen;
     QPen mSnapLinePen;
     QPen mCursorPen;
-    //! Snapping indicators
-    std::unique_ptr<QgsSnapIndicator> mSnapIndicator;
-
-  private:
     QgsAdvancedDigitizingDockWidget *mAdvancedDigitizingDockWidget = nullptr;
 };
 
diff --git a/src/gui/qgsadvanceddigitizingdockwidget.cpp b/src/gui/qgsadvanceddigitizingdockwidget.cpp
index 36775a113d..5dfa229f6a 100644
--- a/src/gui/qgsadvanceddigitizingdockwidget.cpp
+++ b/src/gui/qgsadvanceddigitizingdockwidget.cpp
@@ -38,6 +38,7 @@
 QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *canvas, QWidget *parent )
   : QgsDockWidget( parent )
   , mMapCanvas( canvas )
+  , mSnapIndicator( qgis::make_unique< QgsSnapIndicator>( canvas ) )
   , mCommonAngleConstraint( QgsSettings().value( QStringLiteral( "/Cad/CommonAngle" ), 90 ).toDouble() )
 {
   setupUi( this );
@@ -554,6 +555,17 @@ bool QgsAdvancedDigitizingDockWidget::applyConstraints( QgsMapMouseEvent *e )
   e->setMapPoint( point );
 
   mSnapMatch = context.snappingUtils->snapToMap( point );
+
+  if ( mSnapMatch.isValid() )
+  {
+    mSnapIndicator->setMatch( mSnapMatch );
+    mSnapIndicator->setVisible( true );
+  }
+  else
+  {
+    mSnapIndicator->setVisible( false );
+  }
+
   /*
    * Constraints are applied in 2D, they are always called when using the tool
    * but they do not take into account if when you snap on a vertex it has
@@ -1020,6 +1032,7 @@ void QgsAdvancedDigitizingDockWidget::addPoint( const QgsPointXY &point )
   }
 
   updateCapacity();
+  updateCadPaintItem();
 }
 
 void QgsAdvancedDigitizingDockWidget::removePreviousPoint()
@@ -1030,6 +1043,7 @@ void QgsAdvancedDigitizingDockWidget::removePreviousPoint()
   int i = pointsCount() > 1 ? 1 : 0;
   mCadPointList.removeAt( i );
   updateCapacity();
+  updateCadPaintItem();
 }
 
 void QgsAdvancedDigitizingDockWidget::clearPoints()
@@ -1038,6 +1052,7 @@ void QgsAdvancedDigitizingDockWidget::clearPoints()
   mSnappedSegment.clear();
 
   updateCapacity();
+  updateCadPaintItem();
 }
 
 void QgsAdvancedDigitizingDockWidget::updateCurrentPoint( const QgsPointXY &point )
@@ -1051,6 +1066,7 @@ void QgsAdvancedDigitizingDockWidget::updateCurrentPoint( const QgsPointXY &poin
   {
     mCadPointList[0] = point;
   }
+  updateCadPaintItem();
 }
 
 
diff --git a/src/gui/qgsadvanceddigitizingdockwidget.h b/src/gui/qgsadvanceddigitizingdockwidget.h
index f4cf873989..c7f1c4348d 100644
--- a/src/gui/qgsadvanceddigitizingdockwidget.h
+++ b/src/gui/qgsadvanceddigitizingdockwidget.h
@@ -27,6 +27,7 @@
 #include "qgsmessagebaritem.h"
 #include "qgspointxy.h"
 #include "qgspointlocator.h"
+#include "qgssnapindicator.h"
 
 
 class QgsAdvancedDigitizingCanvasItem;
@@ -278,6 +279,12 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
      */
     void addPoint( const QgsPointXY &point );
 
+    /**
+     * Remove previous point in the CAD point list
+     * \since QGIS 3.8
+     */
+    void removePreviousPoint();
+
     /**
      * Configures list of current CAD points
      *
@@ -426,8 +433,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
 
     //! update the current point in the CAD point list
     void updateCurrentPoint( const QgsPointXY &point );
-    //! remove previous point in the CAD point list
-    void removePreviousPoint();
+
 
     /**
      * filters key press
@@ -463,6 +469,8 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
 
     QgsMapCanvas *mMapCanvas = nullptr;
     QgsAdvancedDigitizingCanvasItem *mCadPaintItem = nullptr;
+    //! Snapping indicator
+    std::unique_ptr<QgsSnapIndicator> mSnapIndicator;
 
     CadCapacities mCapacities = nullptr;
 
diff --git a/src/gui/qgsattributedialog.h b/src/gui/qgsattributedialog.h
index f6cb2f2b46..e880232b38 100644
--- a/src/gui/qgsattributedialog.h
+++ b/src/gui/qgsattributedialog.h
@@ -28,7 +28,6 @@
 #include <QGridLayout>
 #include "qgis_gui.h"
 
-class QgsDistanceArea;
 class QgsHighlight;
 
 /**
diff --git a/src/gui/qgsexpressionbuilderwidget.cpp b/src/gui/qgsexpressionbuilderwidget.cpp
index 330db74c4e..d17c5be6f2 100644
--- a/src/gui/qgsexpressionbuilderwidget.cpp
+++ b/src/gui/qgsexpressionbuilderwidget.cpp
@@ -626,7 +626,8 @@ void QgsExpressionBuilderWidget::updateFunctionTree()
   QString casestring = QStringLiteral( "CASE WHEN condition THEN result END" );
   registerItem( QStringLiteral( "Conditionals" ), QStringLiteral( "CASE" ), casestring );
 
-  registerItem( QStringLiteral( "Fields and Values" ), QStringLiteral( "NULL" ), QStringLiteral( "NULL" ) );
+  // use -1 as sort order here -- NULL should always show before the field list
+  registerItem( QStringLiteral( "Fields and Values" ), QStringLiteral( "NULL" ), QStringLiteral( "NULL" ), QString(), QgsExpressionItem::ExpressionNode, false, -1 );
 
   // Load the functions from the QgsExpression class
   int count = QgsExpression::functionCount();
diff --git a/src/gui/qgsexternalresourcewidget.cpp b/src/gui/qgsexternalresourcewidget.cpp
index 3d27173f8a..9793f99557 100644
--- a/src/gui/qgsexternalresourcewidget.cpp
+++ b/src/gui/qgsexternalresourcewidget.cpp
@@ -230,7 +230,7 @@ void QgsExternalResourceWidget::loadDocument( const QString &path )
 #ifdef WITH_QTWEBKIT
     if ( mDocumentViewerContent == Web )
     {
-      mWebView->setUrl( QUrl::fromEncoded( resolvedPath.toUtf8() ) );
+      mWebView->load( QUrl::fromEncoded( resolvedPath.toUtf8() ) );
       mWebView->page()->settings()->setAttribute( QWebSettings::LocalStorageEnabled, true );
     }
 #endif
diff --git a/src/gui/qgsfilewidget.cpp b/src/gui/qgsfilewidget.cpp
index e10dc8a2a5..189f2c05e6 100644
--- a/src/gui/qgsfilewidget.cpp
+++ b/src/gui/qgsfilewidget.cpp
@@ -53,11 +53,13 @@ QgsFileWidget::QgsFileWidget( QWidget *parent )
 
   // otherwise, use the traditional QLineEdit subclass
   mLineEdit = new QgsFileDropEdit( this );
+  mLineEdit->setToolTip( tr( "Full path to the file(s), including name and extension" ) );
   connect( mLineEdit, &QLineEdit::textChanged, this, &QgsFileWidget::textEdited );
   mLayout->addWidget( mLineEdit );
 
   mFileWidgetButton = new QToolButton( this );
   mFileWidgetButton->setText( QChar( 0x2026 ) );
+  mFileWidgetButton->setToolTip( tr( "Browse" ) );
   connect( mFileWidgetButton, &QAbstractButton::clicked, this, &QgsFileWidget::openFileDialog );
   mLayout->addWidget( mFileWidgetButton );
 
diff --git a/src/gui/qgsgui.h b/src/gui/qgsgui.h
index 779339f66d..7630d413a9 100644
--- a/src/gui/qgsgui.h
+++ b/src/gui/qgsgui.h
@@ -41,10 +41,22 @@ class QgsWindowManagerInterface;
  * related to GUI classes.
  * \since QGIS 3.0
  */
-class GUI_EXPORT QgsGui
+class GUI_EXPORT QgsGui : public QObject
 {
+    Q_OBJECT
+
   public:
 
+    /**
+     * Defines the behavior to use when setting the CRS for a newly created project.
+     */
+    enum ProjectCrsBehavior
+    {
+      UseCrsOfFirstLayerAdded = 1, //!< Set the project CRS to the CRS of the first layer added to a new project
+      UsePresetCrs = 2, //!< Always set new projects to use a preset default CRS
+    };
+    Q_ENUM( ProjectCrsBehavior )
+
     //! QgsGui cannot be copied
     QgsGui( const QgsGui &other ) = delete;
 
diff --git a/src/gui/qgsmaptip.cpp b/src/gui/qgsmaptip.cpp
index 46ac5f2bb5..4e652c1c98 100644
--- a/src/gui/qgsmaptip.cpp
+++ b/src/gui/qgsmaptip.cpp
@@ -106,7 +106,7 @@ void QgsMapTip::showMapTip( QgsMapLayer *pLayer,
 
   backgroundColor = mWidget->palette().base().color().name();
   strokeColor = mWidget->palette().shadow().color().name();
-  mWidget->setStyleSheet( QString(
+  mWidget->setStyleSheet( QStringLiteral(
                             ".QWidget{"
                             "border: 1px solid %1;"
                             "background-color: %2;}" ).arg(
@@ -126,17 +126,16 @@ void QgsMapTip::showMapTip( QgsMapLayer *pLayer,
     return;
   }
 
-  bodyStyle = QString(
+  bodyStyle = QStringLiteral(
                 "background-color: %1;"
                 "margin: 0;"
-                "white-space: nowrap;"
                 "font: %2pt \"%3\";" ).arg( backgroundColor ).arg( mFontSize ).arg( mFontFamily );
 
-  containerStyle = QString(
+  containerStyle = QStringLiteral(
                      "display: inline-block;"
                      "margin: 0px" );
 
-  tipHtml = QString(
+  tipHtml = QStringLiteral(
               "<html>"
               "<body style='%1'>"
               "<div id='QgsWebViewContainer' style='%2'>%3</div>"
diff --git a/src/gui/qgsmaptool.cpp b/src/gui/qgsmaptool.cpp
index 52e707cc3b..39e9097a47 100644
--- a/src/gui/qgsmaptool.cpp
+++ b/src/gui/qgsmaptool.cpp
@@ -34,7 +34,8 @@ QgsMapTool::QgsMapTool( QgsMapCanvas *canvas )
 
 QgsMapTool::~QgsMapTool()
 {
-  mCanvas->unsetMapTool( this );
+  if ( mCanvas )
+    mCanvas->unsetMapTool( this );
 }
 
 
diff --git a/src/gui/qgsmaptooladvanceddigitizing.h b/src/gui/qgsmaptooladvanceddigitizing.h
index a0a659bf77..660fc255b8 100644
--- a/src/gui/qgsmaptooladvanceddigitizing.h
+++ b/src/gui/qgsmaptooladvanceddigitizing.h
@@ -107,6 +107,9 @@ class GUI_EXPORT QgsMapToolAdvancedDigitizing : public QgsMapToolEdit
      */
     void setAutoSnapEnabled( bool enabled ) { mAutoSnapEnabled = enabled; }
 
+
+    QgsAdvancedDigitizingDockWidget *mCadDockWidget = nullptr;
+
   public:
 
     /**
@@ -172,7 +175,6 @@ class GUI_EXPORT QgsMapToolAdvancedDigitizing : public QgsMapToolEdit
     void onCurrentLayerChanged();
 
   private:
-    QgsAdvancedDigitizingDockWidget *mCadDockWidget = nullptr;
 
     //! Whether to allow use of advanced digitizing dock at this point
     bool mAdvancedDigitizingAllowed = true;
diff --git a/src/gui/qgsmaptoolcapture.cpp b/src/gui/qgsmaptoolcapture.cpp
index b31db02738..3a311a10d7 100644
--- a/src/gui/qgsmaptoolcapture.cpp
+++ b/src/gui/qgsmaptoolcapture.cpp
@@ -30,6 +30,7 @@
 #include "qgsvectorlayer.h"
 #include "qgsvertexmarker.h"
 #include "qgssettings.h"
+#include "qgsadvanceddigitizingdockwidget.h"
 
 #include <QAction>
 #include <QCursor>
@@ -584,6 +585,8 @@ void QgsMapToolCapture::undo()
     mCaptureCurve.deleteVertex( vertexToRemove );
     mSnappingMatches.removeAt( vertexToRemove.vertex );
 
+    mCadDockWidget->removePreviousPoint();
+
     validateGeometry();
   }
 }
diff --git a/src/gui/qgsmaptoolidentify.h b/src/gui/qgsmaptoolidentify.h
index 7029e79a26..23eaf0203e 100644
--- a/src/gui/qgsmaptoolidentify.h
+++ b/src/gui/qgsmaptoolidentify.h
@@ -32,7 +32,6 @@ class QgsMapLayer;
 class QgsMapCanvas;
 class QgsHighlight;
 class QgsIdentifyMenu;
-class QgsDistanceArea;
 
 /**
  * \ingroup gui
diff --git a/src/gui/qgsnewhttpconnection.cpp b/src/gui/qgsnewhttpconnection.cpp
index 54ece6ace6..6a76a3e6b2 100644
--- a/src/gui/qgsnewhttpconnection.cpp
+++ b/src/gui/qgsnewhttpconnection.cpp
@@ -161,9 +161,10 @@ QgsNewHttpConnection::QgsNewHttpConnection( QWidget *parent, ConnectionTypes typ
 
 void QgsNewHttpConnection::wfsVersionCurrentIndexChanged( int index )
 {
-  cbxWfsFeaturePaging->setEnabled( index == 0 || index == 3 );
-  lblPageSize->setEnabled( index == 0 || index == 3 );
-  txtPageSize->setEnabled( index == 0 || index == 3 );
+  // For now 2019-06-06, leave paging checkable for some WFS version 1.1 servers with support
+  cbxWfsFeaturePaging->setEnabled( index == 0 || index >= 2 );
+  lblPageSize->setEnabled( cbxWfsFeaturePaging->isChecked() && ( index == 0 || index >= 2 ) );
+  txtPageSize->setEnabled( cbxWfsFeaturePaging->isChecked() && ( index == 0 || index >= 2 ) );
   cbxWfsIgnoreAxisOrientation->setEnabled( index != 1 );
 }
 
@@ -235,6 +236,11 @@ QPushButton *QgsNewHttpConnection::testConnectButton()
   return mTestConnectionButton;
 }
 
+QgsAuthSettingsWidget *QgsNewHttpConnection::authSettingsWidget()
+{
+  return mAuthSettings;
+}
+
 QPushButton *QgsNewHttpConnection::wfsVersionDetectButton()
 {
   return mWfsVersionDetectButton;
@@ -313,13 +319,17 @@ void QgsNewHttpConnection::updateServiceSpecificSettings()
   txtReferer->setText( settings.value( wmsKey + "/referer" ).toString() );
   txtMaxNumFeatures->setText( settings.value( wfsKey + "/maxnumfeatures" ).toString() );
 
-  bool pagingEnabled = settings.value( wfsKey + "/pagingenabled", true ).toBool();
+  // Only default to paging enabled if WFS 2.0.0 or higher
+  bool pagingEnabled = settings.value( wfsKey + "/pagingenabled", ( versionIdx == 0 || versionIdx >= 3 ) ).toBool();
   txtPageSize->setText( settings.value( wfsKey + "/pagesize" ).toString() );
   cbxWfsFeaturePaging->setChecked( pagingEnabled );
 
-  txtPageSize->setEnabled( pagingEnabled );
-  lblPageSize->setEnabled( pagingEnabled );
-  cbxWfsFeaturePaging->setEnabled( pagingEnabled );
+  // Enable/disable these items per WFS versions
+  // For now 2019-06-06, leave paging checkable for some WFS version 1.1 servers with support
+  txtPageSize->setEnabled( pagingEnabled && ( versionIdx == 0 || versionIdx >= 2 ) );
+  lblPageSize->setEnabled( pagingEnabled && ( versionIdx == 0 || versionIdx >= 2 ) );
+  cbxWfsFeaturePaging->setEnabled( versionIdx == 0 || versionIdx >= 2 );
+  cbxWfsIgnoreAxisOrientation->setEnabled( versionIdx != 1 );
 }
 
 QUrl QgsNewHttpConnection::urlTrimmed() const
diff --git a/src/gui/qgsnewhttpconnection.h b/src/gui/qgsnewhttpconnection.h
index fc079a3dd8..4def6af481 100644
--- a/src/gui/qgsnewhttpconnection.h
+++ b/src/gui/qgsnewhttpconnection.h
@@ -115,6 +115,12 @@ class GUI_EXPORT QgsNewHttpConnection : public QDialog, private Ui::QgsNewHttpCo
      */
     QPushButton *testConnectButton();
 
+    /**
+     * Returns the current authentication settings widget.
+     * \since QGIS 3.8
+     */
+    QgsAuthSettingsWidget *authSettingsWidget() SIP_SKIP;
+
     /**
      * Returns the "WFS version detect" button.
      * \since QGIS 3.2
diff --git a/src/gui/qgsprojectionselectionwidget.cpp b/src/gui/qgsprojectionselectionwidget.cpp
index bba3e7e1ac..b9d6223a85 100644
--- a/src/gui/qgsprojectionselectionwidget.cpp
+++ b/src/gui/qgsprojectionselectionwidget.cpp
@@ -39,8 +39,7 @@ QgsProjectionSelectionWidget::QgsProjectionSelectionWidget( QWidget *parent )
   addProjectCrsOption();
 
   QgsSettings settings;
-  QString defCrsString = settings.value( QStringLiteral( "Projections/projectDefaultCrs" ), GEO_EPSG_CRS_AUTHID ).toString();
-  mDefaultCrs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( defCrsString );
+  mDefaultCrs = QgsCoordinateReferenceSystem( settings.value( QStringLiteral( "/projections/defaultProjectCrs" ), GEO_EPSG_CRS_AUTHID, QgsSettings::App ).toString() );
   if ( mDefaultCrs.authid() != mProjectCrs.authid() )
   {
     //only show default CRS option if it's different to the project CRS, avoids
@@ -172,9 +171,11 @@ void QgsProjectionSelectionWidget::selectCrs()
   //find out crs id of current proj4 string
   QgsProjectionSelectionDialog dlg( this );
   dlg.setMessage( mMessage );
-  if ( mCrs.isValid() )
+  dlg.setCrs( mCrs );
+
+  if ( optionVisible( QgsProjectionSelectionWidget::CrsOption::CrsNotSet ) )
   {
-    dlg.setCrs( mCrs );
+    dlg.setShowNoProjection( true );
   }
 
   if ( dlg.exec() )
diff --git a/src/gui/qgsrasterlayersaveasdialog.cpp b/src/gui/qgsrasterlayersaveasdialog.cpp
index 77c76a0b38..ca46590d7a 100644
--- a/src/gui/qgsrasterlayersaveasdialog.cpp
+++ b/src/gui/qgsrasterlayersaveasdialog.cpp
@@ -910,19 +910,28 @@ bool QgsRasterLayerSaveAsDialog::validate() const
 
 bool QgsRasterLayerSaveAsDialog::outputLayerExists() const
 {
-  QString uri;
+  QString vectorUri;
+  QString rasterUri;
   if ( outputFormat() == QStringLiteral( "GPKG" ) )
   {
-    uri = QStringLiteral( "GPKG:%1:%2" ).arg( outputFileName(), outputLayerName() );
+    rasterUri = QStringLiteral( "GPKG:%1:%2" ).arg( outputFileName(), outputLayerName() );
+    vectorUri = QStringLiteral( "%1|layername=%2" ).arg( outputFileName(), outputLayerName() );
   }
   else
   {
-    uri = outputFileName();
+    rasterUri = outputFileName();
   }
 
-  std::unique_ptr< QgsRasterLayer > rastLayer( new QgsRasterLayer( uri, "", QStringLiteral( "gdal" ) ) );
-  std::unique_ptr< QgsVectorLayer > vectLayer( new QgsVectorLayer( uri, "", QStringLiteral( "ogr" ) ) );
-  return ( rastLayer->isValid() || vectLayer->isValid() );
+  QgsRasterLayer rasterLayer( rasterUri, QString( ), QStringLiteral( "gdal" ) );
+  if ( !vectorUri.isEmpty() )
+  {
+    QgsVectorLayer vectorLayer( vectorUri, QString( ), QStringLiteral( "ogr" ) );
+    return rasterLayer.isValid() || vectorLayer.isValid();
+  }
+  else
+  {
+    return rasterLayer.isValid();
+  }
 }
 
 void QgsRasterLayerSaveAsDialog::accept()
diff --git a/src/gui/qgsrasterlayersaveasdialog.h b/src/gui/qgsrasterlayersaveasdialog.h
index ac83c0033b..4876f1136e 100644
--- a/src/gui/qgsrasterlayersaveasdialog.h
+++ b/src/gui/qgsrasterlayersaveasdialog.h
@@ -148,6 +148,8 @@ class GUI_EXPORT QgsRasterLayerSaveAsDialog: public QDialog, private Ui::QgsRast
     bool outputLayerExists() const;
 
     void insertAvailableOutputFormats();
+
+    friend class TestQgsRasterLayerSaveAsDialog;
 };
 
 
diff --git a/src/gui/qgsscalerangewidget.h b/src/gui/qgsscalerangewidget.h
index d65af6d022..0509104bbe 100644
--- a/src/gui/qgsscalerangewidget.h
+++ b/src/gui/qgsscalerangewidget.h
@@ -77,6 +77,11 @@ class GUI_EXPORT QgsScaleRangeWidget : public QWidget
      * \see minimumScale()
      * \see setMaximumScale()
      * \see setScaleRange()
+     *
+     * \warning Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
+     * widget, and will alter any previously set maximum scale to pass this constraint. Always
+     * call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
+     * use the convenience method setScaleRange() instead.
      */
     void setMinimumScale( double scale );
 
@@ -86,6 +91,11 @@ class GUI_EXPORT QgsScaleRangeWidget : public QWidget
      * \see maximumScale()
      * \see setMinimumScale()
      * \see setScaleRange()
+     *
+     * \warning Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
+     * widget, and will alter any previously set maximum scale to pass this constraint. Always
+     * call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
+     * use the convenience method setScaleRange() instead.
      */
     void setMaximumScale( double scale );
 
diff --git a/src/gui/qgssnapindicator.cpp b/src/gui/qgssnapindicator.cpp
index 448f2cf16f..03b6dc5e79 100644
--- a/src/gui/qgssnapindicator.cpp
+++ b/src/gui/qgssnapindicator.cpp
@@ -27,9 +27,23 @@
 QgsSnapIndicator::QgsSnapIndicator( QgsMapCanvas *canvas )
   : mCanvas( canvas )
 {
+  mCanvasDestroyedConnection = QObject::connect( canvas, &QgsMapCanvas::destroyed, [ = ]()
+  {
+    mCanvas = nullptr;
+    mSnappingMarker = nullptr;
+  } );
 }
 
-QgsSnapIndicator::~QgsSnapIndicator() = default;
+QgsSnapIndicator::~QgsSnapIndicator()
+{
+  if ( mSnappingMarker && mCanvas )
+  {
+    mCanvas->scene()->removeItem( mSnappingMarker );
+    delete mSnappingMarker;
+  }
+
+  QObject::disconnect( mCanvasDestroyedConnection );
+};
 
 void QgsSnapIndicator::setMatch( const QgsPointLocator::Match &match )
 {
@@ -37,14 +51,19 @@ void QgsSnapIndicator::setMatch( const QgsPointLocator::Match &match )
 
   if ( !mMatch.isValid() )
   {
-    mSnappingMarker.reset();
+    if ( mSnappingMarker )
+    {
+      mCanvas->scene()->removeItem( mSnappingMarker );
+      delete mSnappingMarker; // need to delete since QGraphicsSene::removeItem transfers back ownership
+    }
+    mSnappingMarker = nullptr;
     QToolTip::hideText();
   }
   else
   {
     if ( !mSnappingMarker )
     {
-      mSnappingMarker.reset( new QgsVertexMarker( mCanvas ) );
+      mSnappingMarker = new QgsVertexMarker( mCanvas ); // ownership of the marker is transferred to QGraphicsScene
       mSnappingMarker->setIconSize( QgsGuiUtils::scaleIconSize( 10 ) );
       mSnappingMarker->setPenWidth( QgsGuiUtils::scaleIconSize( 3 ) );
     }
diff --git a/src/gui/qgssnapindicator.h b/src/gui/qgssnapindicator.h
index 218e4b565e..5251244d72 100644
--- a/src/gui/qgssnapindicator.h
+++ b/src/gui/qgssnapindicator.h
@@ -56,7 +56,8 @@ class GUI_EXPORT QgsSnapIndicator
 
     QgsMapCanvas *mCanvas;
     QgsPointLocator::Match mMatch;
-    std::unique_ptr<QgsVertexMarker> mSnappingMarker;
+    QgsVertexMarker *mSnappingMarker = nullptr;
+    QMetaObject::Connection mCanvasDestroyedConnection;
 };
 
 #endif // QGSSNAPINDICATOR_H
diff --git a/src/gui/qgsstatusbar.cpp b/src/gui/qgsstatusbar.cpp
index 642a35d3fa..b0da2b2d29 100644
--- a/src/gui/qgsstatusbar.cpp
+++ b/src/gui/qgsstatusbar.cpp
@@ -21,6 +21,7 @@
 #include <QPalette>
 #include <QTimer>
 #include <QEvent>
+#include <QStatusBar>
 
 QgsStatusBar::QgsStatusBar( QWidget *parent )
   : QWidget( parent )
@@ -91,6 +92,17 @@ void QgsStatusBar::clearMessage()
   mLineEdit->setText( QString() );
 }
 
+void QgsStatusBar::setParentStatusBar( QStatusBar *statusBar )
+{
+  if ( mParentStatusBar )
+    mParentStatusBar->disconnect( mShowMessageConnection );
+
+  mParentStatusBar = statusBar;
+
+  if ( mParentStatusBar )
+    mShowMessageConnection = connect( mParentStatusBar, &QStatusBar::messageChanged, this, [this]( const QString & message ) { showMessage( message ); } );
+}
+
 void QgsStatusBar::changeEvent( QEvent *event )
 {
   QWidget::changeEvent( event );
diff --git a/src/gui/qgsstatusbar.h b/src/gui/qgsstatusbar.h
index 81b840dbec..9e39501f43 100644
--- a/src/gui/qgsstatusbar.h
+++ b/src/gui/qgsstatusbar.h
@@ -24,6 +24,7 @@
 
 class QHBoxLayout;
 class QLineEdit;
+class QStatusBar;
 
 /**
  * \class QgsStatusBar
@@ -100,6 +101,15 @@ class GUI_EXPORT QgsStatusBar : public QWidget
      */
     void clearMessage();
 
+    /**
+     * Sets the parent status bar.
+     * Messages that are shown on the parent status bar will be intercepted
+     * and shown on this status bar too.
+     *
+     * \since QGIS 3.8
+     */
+    void setParentStatusBar( QStatusBar *statusBar );
+
 
   protected:
 
@@ -110,6 +120,8 @@ class GUI_EXPORT QgsStatusBar : public QWidget
     QHBoxLayout *mLayout = nullptr;
     QLineEdit *mLineEdit = nullptr;
     QTimer *mTempMessageTimer = nullptr;
+    QStatusBar *mParentStatusBar = nullptr;
+    QMetaObject::Connection mShowMessageConnection;
 
 };
 
diff --git a/src/gui/qgstextformatwidget.cpp b/src/gui/qgstextformatwidget.cpp
index af1870423c..f58fa1e572 100644
--- a/src/gui/qgstextformatwidget.cpp
+++ b/src/gui/qgstextformatwidget.cpp
@@ -149,6 +149,7 @@ void QgsTextFormatWidget::initWidget()
   mFontLetterSpacingSpinBox->setClearValue( 0.0 );
   mFontWordSpacingSpinBox->setClearValue( 0.0 );
   mZIndexSpinBox->setClearValue( 0.0 );
+  mLineDistanceSpnBx->setClearValue( 0.0 );
 
   mObstacleTypeComboBox->addItem( tr( "Over the feature's interior" ), QgsPalLayerSettings::PolygonInterior );
   mObstacleTypeComboBox->addItem( tr( "Over the feature's boundary" ), QgsPalLayerSettings::PolygonBoundary );
@@ -511,7 +512,8 @@ void QgsTextFormatWidget::initWidget()
           << radPolygonPerimeterCurved
           << radPredefinedOrder
           << mFieldExpressionWidget
-          << mCheckBoxSubstituteText;
+          << mCheckBoxSubstituteText
+          << mLinePlacementFlagsDDBtn;
   connectValueChanged( widgets, SLOT( updatePreview() ) );
 
   connect( mQuadrantBtnGrp, static_cast<void ( QButtonGroup::* )( int )>( &QButtonGroup::buttonClicked ), this, &QgsTextFormatWidget::updatePreview );
diff --git a/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp b/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp
index 04a45ee22b..4854157831 100644
--- a/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp
+++ b/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp
@@ -119,6 +119,13 @@ void QgsInvertedPolygonRendererWidget::setContext( const QgsSymbolWidgetContext
     mEmbeddedRendererWidget->setContext( context );
 }
 
+void QgsInvertedPolygonRendererWidget::setDockMode( bool dockMode )
+{
+  QgsRendererWidget::setDockMode( dockMode );
+  if ( mEmbeddedRendererWidget )
+    mEmbeddedRendererWidget->setDockMode( dockMode );
+}
+
 void QgsInvertedPolygonRendererWidget::mRendererComboBox_currentIndexChanged( int index )
 {
   QString rendererId = mRendererComboBox->itemData( index ).toString();
@@ -128,6 +135,8 @@ void QgsInvertedPolygonRendererWidget::mRendererComboBox_currentIndexChanged( in
     mEmbeddedRendererWidget.reset( m->createRendererWidget( mLayer, mStyle, const_cast<QgsFeatureRenderer *>( mRenderer->embeddedRenderer() )->clone() ) );
     connect( mEmbeddedRendererWidget.get(), &QgsRendererWidget::widgetChanged, this, &QgsInvertedPolygonRendererWidget::widgetChanged );
     mEmbeddedRendererWidget->setContext( mContext );
+    mEmbeddedRendererWidget->setDockMode( this->dockMode() );
+    connect( mEmbeddedRendererWidget.get(), &QgsPanelWidget::showPanel, this, &QgsPanelWidget::openPanel );
 
     if ( layout()->count() > 2 )
     {
diff --git a/src/gui/symbology/qgsinvertedpolygonrendererwidget.h b/src/gui/symbology/qgsinvertedpolygonrendererwidget.h
index cd126bef91..90dd5d3c53 100644
--- a/src/gui/symbology/qgsinvertedpolygonrendererwidget.h
+++ b/src/gui/symbology/qgsinvertedpolygonrendererwidget.h
@@ -55,6 +55,8 @@ class GUI_EXPORT QgsInvertedPolygonRendererWidget : public QgsRendererWidget, pr
 
     void setContext( const QgsSymbolWidgetContext &context ) override;
 
+    void setDockMode( bool dockMode ) override;
+
   protected:
     //! The mask renderer
     std::unique_ptr<QgsInvertedPolygonRenderer> mRenderer;
diff --git a/src/gui/symbology/qgsrulebasedrendererwidget.cpp b/src/gui/symbology/qgsrulebasedrendererwidget.cpp
index 42a89b5c20..79af8657ba 100644
--- a/src/gui/symbology/qgsrulebasedrendererwidget.cpp
+++ b/src/gui/symbology/qgsrulebasedrendererwidget.cpp
@@ -647,8 +647,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRenderer::Ru
   if ( mRule->dependsOnScale() )
   {
     groupScale->setChecked( true );
-    mScaleRangeWidget->setMaximumScale( std::max( rule->maximumScale(), 0.0 ) );
-    mScaleRangeWidget->setMinimumScale( std::max( rule->minimumScale(), 0.0 ) );
+    mScaleRangeWidget->setScaleRange( std::max( rule->minimumScale(), 0.0 ),
+                                      std::max( rule->maximumScale(), 0.0 ) );
   }
   mScaleRangeWidget->setMapCanvas( mContext.mapCanvas() );
 
diff --git a/src/plugins/evis/databaseconnection/evisdatabaseconnectiongui.cpp b/src/plugins/evis/databaseconnection/evisdatabaseconnectiongui.cpp
index 13c71129a6..3f5ca6766b 100644
--- a/src/plugins/evis/databaseconnection/evisdatabaseconnectiongui.cpp
+++ b/src/plugins/evis/databaseconnection/evisdatabaseconnectiongui.cpp
@@ -545,5 +545,5 @@ void eVisDatabaseConnectionGui::pbtnRunQuery_clicked()
 
 void eVisDatabaseConnectionGui::showHelp()
 {
-  QgsHelp::openHelp( QStringLiteral( "plugins/plugins_evis.html#database-connection" ) );
+  QgsHelp::openHelp( QStringLiteral( "plugins/core_plugins/plugins_evis.html#database-connection" ) );
 }
diff --git a/src/plugins/geometry_checker/qgsgeometrycheckerdialog.cpp b/src/plugins/geometry_checker/qgsgeometrycheckerdialog.cpp
index b4baee3453..4c493d85c4 100644
--- a/src/plugins/geometry_checker/qgsgeometrycheckerdialog.cpp
+++ b/src/plugins/geometry_checker/qgsgeometrycheckerdialog.cpp
@@ -112,5 +112,5 @@ void QgsGeometryCheckerDialog::closeEvent( QCloseEvent *ev )
 
 void QgsGeometryCheckerDialog::showHelp()
 {
-  QgsHelp::openHelp( QStringLiteral( "plugins/plugins_geometry_checker.html" ) );
+  QgsHelp::openHelp( QStringLiteral( "plugins/core_plugins/plugins_geometry_checker.html" ) );
 }
diff --git a/src/plugins/georeferencer/qgsgeorefplugingui.cpp b/src/plugins/georeferencer/qgsgeorefplugingui.cpp
index 2392ff3fa6..28fb59f1b9 100644
--- a/src/plugins/georeferencer/qgsgeorefplugingui.cpp
+++ b/src/plugins/georeferencer/qgsgeorefplugingui.cpp
@@ -690,7 +690,7 @@ void QgsGeorefPluginGui::localHistogramStretch()
 // Info slots
 void QgsGeorefPluginGui::showHelp()
 {
-  QgsHelp::openHelp( QStringLiteral( "plugins/plugins_georeferencer.html#defining-the-transformation-settings" ) );
+  QgsHelp::openHelp( QStringLiteral( "plugins/core_plugins/plugins_georeferencer.html#defining-the-transformation-settings" ) );
 }
 
 // Comfort slots
diff --git a/src/plugins/grass/qgis_grass_test.py b/src/plugins/grass/qgis_grass_test.py
index faaebe500c..4b2022251d 100755
--- a/src/plugins/grass/qgis_grass_test.py
+++ b/src/plugins/grass/qgis_grass_test.py
@@ -38,7 +38,7 @@
 __author__ = 'Radim Blazek'
 __date__ = 'December 2012'
 __copyright__ = '(C) 2012, Radim Blazek'
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import sys
diff --git a/src/plugins/grass/scripts/db.connect-login.pg.py b/src/plugins/grass/scripts/db.connect-login.pg.py
index 35335be772..f4e3f2ad81 100644
--- a/src/plugins/grass/scripts/db.connect-login.pg.py
+++ b/src/plugins/grass/scripts/db.connect-login.pg.py
@@ -22,7 +22,7 @@ __author__ = 'Radim Blazek'
 __date__ = 'July 2009'
 __copyright__ = '(C) 2009, Radim Blazek'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 #%Module
diff --git a/src/plugins/grass/scripts/qgis.v.kernel.rast.py b/src/plugins/grass/scripts/qgis.v.kernel.rast.py
index a2dddad9af..6a0190e359 100644
--- a/src/plugins/grass/scripts/qgis.v.kernel.rast.py
+++ b/src/plugins/grass/scripts/qgis.v.kernel.rast.py
@@ -22,7 +22,7 @@ __author__ = 'Radim Blazek'
 __date__ = 'February 2010'
 __copyright__ = '(C) 2010, Radim Blazek'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 ############################################################################
diff --git a/src/plugins/grass/scripts/qgis.v.upgrade.py b/src/plugins/grass/scripts/qgis.v.upgrade.py
index f641dba75c..5ed9e28d1b 100644
--- a/src/plugins/grass/scripts/qgis.v.upgrade.py
+++ b/src/plugins/grass/scripts/qgis.v.upgrade.py
@@ -22,7 +22,7 @@ __author__ = 'Radim Blazek'
 __date__ = 'October 2015'
 __copyright__ = '(C) 2015 by Radim Blazek'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 ############################################################################
diff --git a/src/plugins/grass/scripts/r.external.all.py b/src/plugins/grass/scripts/r.external.all.py
index d32d200031..527faf7279 100644
--- a/src/plugins/grass/scripts/r.external.all.py
+++ b/src/plugins/grass/scripts/r.external.all.py
@@ -22,7 +22,7 @@ __author__ = 'Lorenzo Masini'
 __date__ = 'July 2009'
 __copyright__ = '(C) 2009, Lorenzo Masini'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 ############################################################################
diff --git a/src/plugins/grass/scripts/v.out.ogr.pg.py b/src/plugins/grass/scripts/v.out.ogr.pg.py
index a76ac07a1e..f56baa7df5 100644
--- a/src/plugins/grass/scripts/v.out.ogr.pg.py
+++ b/src/plugins/grass/scripts/v.out.ogr.pg.py
@@ -22,7 +22,7 @@ __author__ = 'Radim Blazek'
 __date__ = 'July 2009'
 __copyright__ = '(C) 2009, Radim Blazek'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 ############################################################################
diff --git a/src/plugins/offline_editing/offline_editing_plugin_gui.cpp b/src/plugins/offline_editing/offline_editing_plugin_gui.cpp
index 31e6db4122..471861a252 100644
--- a/src/plugins/offline_editing/offline_editing_plugin_gui.cpp
+++ b/src/plugins/offline_editing/offline_editing_plugin_gui.cpp
@@ -238,7 +238,7 @@ void QgsOfflineEditingPluginGui::buttonBox_rejected()
 
 void QgsOfflineEditingPluginGui::showHelp()
 {
-  QgsHelp::openHelp( QStringLiteral( "plugins/plugins_offline_editing.html" ) );
+  QgsHelp::openHelp( QStringLiteral( "plugins/core_plugins/plugins_offline_editing.html" ) );
 }
 
 void QgsOfflineEditingPluginGui::restoreState()
diff --git a/src/plugins/topology/rulesDialog.cpp b/src/plugins/topology/rulesDialog.cpp
index 98cf775da1..f62369930c 100644
--- a/src/plugins/topology/rulesDialog.cpp
+++ b/src/plugins/topology/rulesDialog.cpp
@@ -336,5 +336,5 @@ void rulesDialog::clearRules()
 
 void rulesDialog::showHelp()
 {
-  QgsHelp::openHelp( QStringLiteral( "plugins/plugins_topology_checker.html" ) );
+  QgsHelp::openHelp( QStringLiteral( "plugins/core_plugins/plugins_topology_checker.html" ) );
 }
diff --git a/src/providers/arcgisrest/CMakeLists.txt b/src/providers/arcgisrest/CMakeLists.txt
index 248326a4aa..a250254c41 100644
--- a/src/providers/arcgisrest/CMakeLists.txt
+++ b/src/providers/arcgisrest/CMakeLists.txt
@@ -6,6 +6,7 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}/src/core/raster
   ${CMAKE_SOURCE_DIR}/src/core/metadata
   ${CMAKE_SOURCE_DIR}/src/core/symbology
+  ${CMAKE_SOURCE_DIR}/src/core/pal
   ${CMAKE_SOURCE_DIR}/src/gui
   ${CMAKE_SOURCE_DIR}/src/gui/auth
   ${CMAKE_BINARY_DIR}/src/ui
@@ -14,6 +15,7 @@ INCLUDE_DIRECTORIES(
 )
 
 INCLUDE_DIRECTORIES(SYSTEM
+  ${GEOS_INCLUDE_DIR}
   ${QCA_INCLUDE_DIR}
   ${QTKEYCHAIN_INCLUDE_DIR}
 )
diff --git a/src/providers/arcgisrest/qgsafsshareddata.cpp b/src/providers/arcgisrest/qgsafsshareddata.cpp
index d2f9c0ebb5..abf78f0b14 100644
--- a/src/providers/arcgisrest/qgsafsshareddata.cpp
+++ b/src/providers/arcgisrest/qgsafsshareddata.cpp
@@ -35,17 +35,6 @@ bool QgsAfsSharedData::getFeature( QgsFeatureId id, QgsFeature &f, const QgsRect
     return filterRect.isNull() || ( f.hasGeometry() && f.geometry().intersects( filterRect ) );
   }
 
-  // When fetching from server, fetch all attributes and geometry by default so that we can cache them
-  QStringList fetchAttribNames;
-  QList<int> fetchAttribIdx;
-  fetchAttribIdx.reserve( mFields.size() );
-  fetchAttribNames.reserve( mFields.size() );
-  for ( int idx = 0, n = mFields.size(); idx < n; ++idx )
-  {
-    fetchAttribNames.append( mFields.at( idx ).name() );
-    fetchAttribIdx.append( idx );
-  }
-
   // Fetch 100 features at the time
   int startId = ( id / 100 ) * 100;
   int stopId = std::min( startId + 100, mObjectIds.length() );
@@ -72,7 +61,7 @@ bool QgsAfsSharedData::getFeature( QgsFeatureId id, QgsFeature &f, const QgsRect
   const QString authcfg = mDataSource.authConfigId();
   const QVariantMap queryData = QgsArcGisRestUtils::getObjects(
                                   mDataSource.param( QStringLiteral( "url" ) ), authcfg, objectIds, mDataSource.param( QStringLiteral( "crs" ) ), true,
-                                  fetchAttribNames, QgsWkbTypes::hasM( mGeometryType ), QgsWkbTypes::hasZ( mGeometryType ),
+                                  QStringList(), QgsWkbTypes::hasM( mGeometryType ), QgsWkbTypes::hasZ( mGeometryType ),
                                   filterRect, errorTitle, errorMessage, feedback );
 
   if ( queryData.isEmpty() )
@@ -97,36 +86,33 @@ bool QgsAfsSharedData::getFeature( QgsFeatureId id, QgsFeature &f, const QgsRect
     int featureId = startId + i;
 
     // Set attributes
-    if ( !fetchAttribIdx.isEmpty() )
+    const QVariantMap attributesData = featureData[QStringLiteral( "attributes" )].toMap();
+    feature.setFields( mFields );
+    QgsAttributes attributes( mFields.size() );
+    for ( int idx = 0; idx < mFields.size(); ++idx )
     {
-      const QVariantMap attributesData = featureData[QStringLiteral( "attributes" )].toMap();
-      feature.setFields( mFields );
-      QgsAttributes attributes( mFields.size() );
-      for ( int idx : qgis::as_const( fetchAttribIdx ) )
+      QVariant attribute = attributesData[mFields.at( idx ).name()];
+      if ( attribute.isNull() )
+      {
+        // ensure that null values are mapped correctly for PyQGIS
+        attribute = QVariant( QVariant::Int );
+      }
+
+      // date/datetime fields must be converted
+      if ( mFields.at( idx ).type() == QVariant::DateTime || mFields.at( idx ).type() == QVariant::Date )
+        attribute = QgsArcGisRestUtils::parseDateTime( attribute );
+
+      if ( !mFields.at( idx ).convertCompatible( attribute ) )
+      {
+        QgsDebugMsg( QStringLiteral( "Invalid value %1 for field %2 of type %3" ).arg( attributesData[mFields.at( idx ).name()].toString(), mFields.at( idx ).name(), mFields.at( idx ).typeName() ) );
+      }
+      attributes[idx] = attribute;
+      if ( mFields.at( idx ).name() == mObjectIdFieldName )
       {
-        QVariant attribute = attributesData[mFields.at( idx ).name()];
-        if ( attribute.isNull() )
-        {
-          // ensure that null values are mapped correctly for PyQGIS
-          attribute = QVariant( QVariant::Int );
-        }
-
-        // date/datetime fields must be converted
-        if ( mFields.at( idx ).type() == QVariant::DateTime || mFields.at( idx ).type() == QVariant::Date )
-          attribute = QgsArcGisRestUtils::parseDateTime( attribute );
-
-        if ( !mFields.at( idx ).convertCompatible( attribute ) )
-        {
-          QgsDebugMsg( QStringLiteral( "Invalid value %1 for field %2 of type %3" ).arg( attributesData[mFields.at( idx ).name()].toString(), mFields.at( idx ).name(), mFields.at( idx ).typeName() ) );
-        }
-        attributes[idx] = attribute;
-        if ( mFields.at( idx ).name() == mObjectIdFieldName )
-        {
-          featureId = startId + objectIds.indexOf( attributesData[mFields.at( idx ).name()].toInt() );
-        }
+        featureId = startId + objectIds.indexOf( attributesData[mFields.at( idx ).name()].toInt() );
       }
-      feature.setAttributes( attributes );
     }
+    feature.setAttributes( attributes );
 
     // Set FID
     feature.setId( featureId );
diff --git a/src/providers/arcgisrest/qgsamsprovider.cpp b/src/providers/arcgisrest/qgsamsprovider.cpp
index bd6186fd28..752497bd00 100644
--- a/src/providers/arcgisrest/qgsamsprovider.cpp
+++ b/src/providers/arcgisrest/qgsamsprovider.cpp
@@ -454,7 +454,7 @@ QgsRasterIdentifyResult QgsAmsProvider::identify( const QgsPointXY &point, QgsRa
   return QgsRasterIdentifyResult( format, entries );
 }
 
-void QgsAmsProvider::readBlock( int /*bandNo*/, const QgsRectangle &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback )
+bool QgsAmsProvider::readBlock( int /*bandNo*/, const QgsRectangle &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback )
 {
   Q_UNUSED( feedback );  // TODO: make use of the feedback object
 
@@ -462,10 +462,14 @@ void QgsAmsProvider::readBlock( int /*bandNo*/, const QgsRectangle &viewExtent,
   draw( viewExtent, width, height );
   if ( mCachedImage.width() != width || mCachedImage.height() != height )
   {
+    if ( feedback )
+      feedback->appendError( tr( "Unexpected image size for block" ) );
+
     QgsDebugMsg( QStringLiteral( "Unexpected image size for block" ) );
-    return;
+    return false;
   }
   std::memcpy( data, mCachedImage.constBits(), mCachedImage.bytesPerLine() * mCachedImage.height() );
+  return true;
 }
 
 #ifdef HAVE_GUI
diff --git a/src/providers/arcgisrest/qgsamsprovider.h b/src/providers/arcgisrest/qgsamsprovider.h
index 9459466161..c7c4f772bc 100644
--- a/src/providers/arcgisrest/qgsamsprovider.h
+++ b/src/providers/arcgisrest/qgsamsprovider.h
@@ -86,7 +86,7 @@ class QgsAmsProvider : public QgsRasterDataProvider
     QgsRasterIdentifyResult identify( const QgsPointXY &point, QgsRaster::IdentifyFormat format, const QgsRectangle &extent = QgsRectangle(), int width = 0, int height = 0, int dpi = 96 ) override;
 
   protected:
-    void readBlock( int bandNo, const QgsRectangle &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
+    bool readBlock( int bandNo, const QgsRectangle &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
 
     void draw( const QgsRectangle &viewExtent, int pixelWidth, int pixelHeight );
 
diff --git a/src/providers/arcgisrest/qgsarcgisrestutils.cpp b/src/providers/arcgisrest/qgsarcgisrestutils.cpp
index 1296ee390b..d0470b42e8 100644
--- a/src/providers/arcgisrest/qgsarcgisrestutils.cpp
+++ b/src/providers/arcgisrest/qgsarcgisrestutils.cpp
@@ -433,17 +433,16 @@ QVariantMap QgsArcGisRestUtils::getObjects( const QString &layerurl, const QStri
   QString wkid = crs.indexOf( QLatin1String( ":" ) ) >= 0 ? crs.split( ':' )[1] : QString();
   queryUrl.addQueryItem( QStringLiteral( "inSR" ), wkid );
   queryUrl.addQueryItem( QStringLiteral( "outSR" ), wkid );
-  QString outFields = fetchAttributes.join( QStringLiteral( "," ) );
-  if ( fetchGeometry )
-  {
-    queryUrl.addQueryItem( QStringLiteral( "returnGeometry" ), QStringLiteral( "true" ) );
-    queryUrl.addQueryItem( QStringLiteral( "outFields" ), outFields );
-  }
+
+  queryUrl.addQueryItem( QStringLiteral( "returnGeometry" ), fetchGeometry ? QStringLiteral( "true" ) : QStringLiteral( "false" ) );
+
+  QString outFields;
+  if ( fetchAttributes.isEmpty() )
+    outFields = QStringLiteral( "*" );
   else
-  {
-    queryUrl.addQueryItem( QStringLiteral( "returnGeometry" ), QStringLiteral( "false" ) );
-    queryUrl.addQueryItem( QStringLiteral( "outFields" ), outFields );
-  }
+    outFields = fetchAttributes.join( ',' );
+  queryUrl.addQueryItem( QStringLiteral( "outFields" ), outFields );
+
   queryUrl.addQueryItem( QStringLiteral( "returnM" ), fetchM ? QStringLiteral( "true" ) : QStringLiteral( "false" ) );
   queryUrl.addQueryItem( QStringLiteral( "returnZ" ), fetchZ ? QStringLiteral( "true" ) : QStringLiteral( "false" ) );
   if ( !filterRect.isNull() )
diff --git a/src/providers/gdal/qgsgdalprovider.cpp b/src/providers/gdal/qgsgdalprovider.cpp
index 0259964a3e..0368d042ca 100644
--- a/src/providers/gdal/qgsgdalprovider.cpp
+++ b/src/providers/gdal/qgsgdalprovider.cpp
@@ -644,9 +644,9 @@ QString QgsGdalProvider::htmlMetadata()
 
 QgsRasterBlock *QgsGdalProvider::block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback )
 {
-  QgsRasterBlock *block = new QgsRasterBlock( dataType( bandNo ), width, height );
+  std::unique_ptr< QgsRasterBlock > block = qgis::make_unique< QgsRasterBlock >( dataType( bandNo ), width, height );
   if ( !initIfNeeded() )
-    return block;
+    return block.release();
   if ( sourceHasNoDataValue( bandNo ) && useSourceNoDataValue( bandNo ) )
   {
     block->setNoDataValue( sourceNoDataValue( bandNo ) );
@@ -654,14 +654,14 @@ QgsRasterBlock *QgsGdalProvider::block( int bandNo, const QgsRectangle &extent,
 
   if ( block->isEmpty() )
   {
-    return block;
+    return block.release();
   }
 
   if ( !mExtent.intersects( extent ) )
   {
     // the requested extent is completely outside of the raster's extent - nothing to do
     block->setIsNoData();
-    return block;
+    return block.release();
   }
 
   if ( !mExtent.contains( extent ) )
@@ -669,18 +669,23 @@ QgsRasterBlock *QgsGdalProvider::block( int bandNo, const QgsRectangle &extent,
     QRect subRect = QgsRasterBlock::subRect( extent, width, height, mExtent );
     block->setIsNoDataExcept( subRect );
   }
-  readBlock( bandNo, extent, width, height, block->bits(), feedback );
+  if ( !readBlock( bandNo, extent, width, height, block->bits(), feedback ) )
+  {
+    QgsDebugMsg( QStringLiteral( "Error occurred while reading block" ) );
+    block->setIsNoData();
+    return block.release();
+  }
   // apply scale and offset
   block->applyScaleOffset( bandScale( bandNo ), bandOffset( bandNo ) );
   block->applyNoDataValues( userNoDataValues( bandNo ) );
-  return block;
+  return block.release();
 }
 
-void QgsGdalProvider::readBlock( int bandNo, int xBlock, int yBlock, void *data )
+bool QgsGdalProvider::readBlock( int bandNo, int xBlock, int yBlock, void *data )
 {
   QMutexLocker locker( mpMutex );
   if ( !initIfNeeded() )
-    return;
+    return false;
 
   // TODO!!!: Check data alignment!!! May it happen that nearest value which
   // is not nearest is assigned to an output cell???
@@ -694,14 +699,21 @@ void QgsGdalProvider::readBlock( int bandNo, int xBlock, int yBlock, void *data
   // We have to read with correct data type consistent with other readBlock functions
   int xOff = xBlock * mXBlockSize;
   int yOff = yBlock * mYBlockSize;
-  gdalRasterIO( myGdalBand, GF_Read, xOff, yOff, mXBlockSize, mYBlockSize, data, mXBlockSize, mYBlockSize, ( GDALDataType ) mGdalDataType.at( bandNo - 1 ), 0, 0 );
+  CPLErr err = gdalRasterIO( myGdalBand, GF_Read, xOff, yOff, mXBlockSize, mYBlockSize, data, mXBlockSize, mYBlockSize, ( GDALDataType ) mGdalDataType.at( bandNo - 1 ), 0, 0 );
+  if ( err != CPLE_None )
+  {
+    QgsLogger::warning( "RasterIO error: " + QString::fromUtf8( CPLGetLastErrorMsg() ) );
+    return false;
+  }
+
+  return true;
 }
 
-void QgsGdalProvider::readBlock( int bandNo, QgsRectangle  const &extent, int pixelWidth, int pixelHeight, void *data, QgsRasterBlockFeedback *feedback )
+bool QgsGdalProvider::readBlock( int bandNo, QgsRectangle  const &extent, int pixelWidth, int pixelHeight, void *data, QgsRasterBlockFeedback *feedback )
 {
   QMutexLocker locker( mpMutex );
   if ( !initIfNeeded() )
-    return;
+    return false;
 
   QgsDebugMsgLevel( "pixelWidth = "  + QString::number( pixelWidth ), 5 );
   QgsDebugMsgLevel( "pixelHeight = "  + QString::number( pixelHeight ), 5 );
@@ -734,7 +746,7 @@ void QgsGdalProvider::readBlock( int bandNo, QgsRectangle  const &extent, int pi
   if ( rasterExtent.isEmpty() )
   {
     QgsDebugMsg( QStringLiteral( "draw request outside view extent." ) );
-    return;
+    return false;
   }
   QgsDebugMsgLevel( "extent: " + mExtent.toString(), 5 );
   QgsDebugMsgLevel( "rasterExtent: " + rasterExtent.toString(), 5 );
@@ -871,14 +883,14 @@ void QgsGdalProvider::readBlock( int bandNo, QgsRectangle  const &extent, int pi
   if ( _buffer_size != static_cast<qint64>( bufferSize ) )
   {
     QgsDebugMsg( QStringLiteral( "Integer overflow calculating buffer size on a 32 bit system." ) );
-    return;
+    return false;
   }
 #endif
   char *tmpBlock = static_cast<char *>( qgsMalloc( bufferSize ) );
   if ( ! tmpBlock )
   {
     QgsDebugMsgLevel( QStringLiteral( "Couldn't allocate temporary buffer of %1 bytes" ).arg( dataSize * tmpWidth * tmpHeight ), 5 );
-    return;
+    return false;
   }
   GDALRasterBandH gdalBand = getBand( bandNo );
   GDALDataType type = static_cast<GDALDataType>( mGdalDataType.at( bandNo - 1 ) );
@@ -892,9 +904,13 @@ void QgsGdalProvider::readBlock( int bandNo, QgsRectangle  const &extent, int pi
 
   if ( err != CPLE_None )
   {
-    QgsLogger::warning( "RasterIO error: " + QString::fromUtf8( CPLGetLastErrorMsg() ) );
+    const QString lastError = QString::fromUtf8( CPLGetLastErrorMsg() ) ;
+    if ( feedback )
+      feedback->appendError( lastError );
+
+    QgsLogger::warning( "RasterIO error: " + lastError );
     qgsFree( tmpBlock );
-    return;
+    return false;
   }
 
   double tmpXRes = srcWidth * srcXRes / tmpWidth;
@@ -932,6 +948,7 @@ void QgsGdalProvider::readBlock( int bandNo, QgsRectangle  const &extent, int pi
   }
 
   qgsFree( tmpBlock );
+  return true;
 }
 
 /**
diff --git a/src/providers/gdal/qgsgdalprovider.h b/src/providers/gdal/qgsgdalprovider.h
index 1e36248d49..9167552f74 100644
--- a/src/providers/gdal/qgsgdalprovider.h
+++ b/src/providers/gdal/qgsgdalprovider.h
@@ -120,8 +120,8 @@ class QgsGdalProvider : public QgsRasterDataProvider, QgsGdalProviderBase
     // Reimplemented from QgsRasterDataProvider to bypass second resampling (more efficient for local file based sources)
     QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback = nullptr ) override;
 
-    void readBlock( int bandNo, int xBlock, int yBlock, void *data ) override;
-    void readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
+    bool readBlock( int bandNo, int xBlock, int yBlock, void *data ) override;
+    bool readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
     double bandScale( int bandNo ) const override;
     double bandOffset( int bandNo ) const override;
     QList<QgsColorRampShader::ColorRampItem> colorTable( int bandNo )const override;
diff --git a/src/providers/grass/qgsgrassrasterprovider.cpp b/src/providers/grass/qgsgrassrasterprovider.cpp
index 0d7fb47490..299d299af0 100644
--- a/src/providers/grass/qgsgrassrasterprovider.cpp
+++ b/src/providers/grass/qgsgrassrasterprovider.cpp
@@ -174,7 +174,7 @@ QgsRasterInterface *QgsGrassRasterProvider::clone() const
   return provider;
 }
 
-void QgsGrassRasterProvider::readBlock( int bandNo, int xBlock, int yBlock, void *block )
+bool QgsGrassRasterProvider::readBlock( int bandNo, int xBlock, int yBlock, void *block )
 {
   Q_UNUSED( xBlock );
   clearLastError();
@@ -214,6 +214,7 @@ void QgsGrassRasterProvider::readBlock( int bandNo, int xBlock, int yBlock, void
     QgsDebugMsg( error );
     appendError( error );
     // We don't set mValid to false, because the raster can be recreated and work next time
+    return false;
   }
   QgsDebugMsg( QString( "%1 bytes read from modules stdout" ).arg( data.size() ) );
   // byteCount() in Qt >= 4.6
@@ -228,9 +229,11 @@ void QgsGrassRasterProvider::readBlock( int bandNo, int xBlock, int yBlock, void
     size = size < data.size() ? size : data.size();
   }
   memcpy( block, data.data(), size );
+
+  return true;
 }
 
-void QgsGrassRasterProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, void *block, QgsRasterBlockFeedback *feedback )
+bool QgsGrassRasterProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, void *block, QgsRasterBlockFeedback *feedback )
 {
   Q_UNUSED( feedback );
   QgsDebugMsg( "pixelWidth = "  + QString::number( pixelWidth ) );
@@ -239,7 +242,7 @@ void QgsGrassRasterProvider::readBlock( int bandNo, QgsRectangle  const &viewExt
   clearLastError();
 
   if ( pixelWidth <= 0 || pixelHeight <= 0 )
-    return;
+    return false;
 
   QStringList arguments;
   arguments.append( "map=" +  mMapName + "@" + mMapset );
@@ -264,7 +267,7 @@ void QgsGrassRasterProvider::readBlock( int bandNo, QgsRectangle  const &viewExt
     appendError( error );
 
     // We don't set mValid to false, because the raster can be recreated and work next time
-    return;
+    return false;
   }
   QgsDebugMsg( QString( "%1 bytes read from modules stdout" ).arg( data.size() ) );
   // byteCount() in Qt >= 4.6
@@ -278,6 +281,8 @@ void QgsGrassRasterProvider::readBlock( int bandNo, QgsRectangle  const &viewExt
     size = size < data.size() ? size : data.size();
   }
   memcpy( block, data.data(), size );
+
+  return true;
 }
 
 QgsRasterBandStats QgsGrassRasterProvider::bandStatistics( int bandNo, int stats, const QgsRectangle &boundingBox, int sampleSize, QgsRasterBlockFeedback * )
diff --git a/src/providers/grass/qgsgrassrasterprovider.h b/src/providers/grass/qgsgrassrasterprovider.h
index 09ddf312e9..6f6a25939c 100644
--- a/src/providers/grass/qgsgrassrasterprovider.h
+++ b/src/providers/grass/qgsgrassrasterprovider.h
@@ -189,8 +189,8 @@ class GRASS_LIB_EXPORT QgsGrassRasterProvider : public QgsRasterDataProvider
     int xSize() const override;
     int ySize() const override;
 
-    void readBlock( int bandNo, int xBlock, int yBlock, void *data ) override;
-    void readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
+    bool readBlock( int bandNo, int xBlock, int yBlock, void *data ) override;
+    bool readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
 
     QgsRasterBandStats bandStatistics( int bandNo,
                                        int stats = QgsRasterBandStats::All,
diff --git a/src/providers/ogr/qgsogrdataitems.cpp b/src/providers/ogr/qgsogrdataitems.cpp
index 75112d9580..74ad4226e4 100644
--- a/src/providers/ogr/qgsogrdataitems.cpp
+++ b/src/providers/ogr/qgsogrdataitems.cpp
@@ -374,7 +374,9 @@ static QgsOgrLayerItem *dataItemForLayer( QgsDataItem *parentItem, QString name,
   OGRFeatureDefnH hDef = OGR_L_GetLayerDefn( hLayer );
 
   QgsLayerItem::LayerType layerType = QgsLayerItem::Vector;
-  OGRwkbGeometryType ogrType = QgsOgrProvider::getOgrGeomType( hLayer );
+  GDALDriverH hDriver = GDALGetDatasetDriver( hDataSource );
+  QString driverName = QString::fromUtf8( GDALGetDriverShortName( hDriver ) );
+  OGRwkbGeometryType ogrType = QgsOgrProvider::getOgrGeomType( driverName, hLayer );
   QgsWkbTypes::Type wkbType = QgsOgrProviderUtils::qgisTypeFromOgrType( ogrType );
   switch ( QgsWkbTypes::geometryType( wkbType ) )
   {
diff --git a/src/providers/ogr/qgsogrprovider.cpp b/src/providers/ogr/qgsogrprovider.cpp
index 33fc43ff68..987bd4415c 100644
--- a/src/providers/ogr/qgsogrprovider.cpp
+++ b/src/providers/ogr/qgsogrprovider.cpp
@@ -905,7 +905,7 @@ void QgsOgrProvider::setEncoding( const QString &e )
 }
 
 // This is reused by dataItem
-OGRwkbGeometryType QgsOgrProvider::getOgrGeomType( OGRLayerH ogrLayer )
+OGRwkbGeometryType QgsOgrProvider::getOgrGeomType( const QString &driverName, OGRLayerH ogrLayer )
 {
   OGRFeatureDefnH fdef = OGR_L_GetLayerDefn( ogrLayer );
   OGRwkbGeometryType geomType = wkbUnknown;
@@ -936,6 +936,15 @@ OGRwkbGeometryType QgsOgrProvider::getOgrGeomType( OGRLayerH ogrLayer )
         if ( geometry )
         {
           geomType = OGR_G_GetGeometryType( geometry );
+
+          // Shapefile MultiPatch can be reported as GeometryCollectionZ of TINZ
+          if ( wkbFlatten( geomType ) == wkbGeometryCollection &&
+               driverName == QLatin1String( "ESRI Shapefile" )  &&
+               OGR_G_GetGeometryCount( geometry ) >= 1 &&
+               wkbFlatten( OGR_G_GetGeometryType( OGR_G_GetGeometryRef( geometry, 0 ) ) ) == wkbTIN )
+          {
+            geomType = wkbMultiPolygon25D;
+          }
         }
         if ( geomType != wkbNone )
           break;
@@ -964,7 +973,7 @@ void QgsOgrProvider::loadFields()
     QMutex *mutex = nullptr;
     OGRLayerH ogrLayer = mOgrLayer->getHandleAndMutex( mutex );
     QMutexLocker locker( mutex );
-    mOGRGeomType = getOgrGeomType( ogrLayer );
+    mOGRGeomType = getOgrGeomType( mGDALDriverName, ogrLayer );
   }
   QgsOgrFeatureDefn &fdef = mOgrLayer->GetLayerDefn();
 
@@ -1306,18 +1315,18 @@ size_t QgsOgrProvider::layerCount() const
  */
 QgsWkbTypes::Type QgsOgrProvider::wkbType() const
 {
-  QgsWkbTypes::Type wkb = static_cast<QgsWkbTypes::Type>( mOGRGeomType );
+  QgsWkbTypes::Type wkb = QgsOgrUtils::ogrGeometryTypeToQgsWkbType( mOGRGeomType );
   if ( mGDALDriverName == QLatin1String( "ESRI Shapefile" ) && ( wkb == QgsWkbTypes::LineString || wkb == QgsWkbTypes::Polygon ) )
   {
     wkb = QgsWkbTypes::multiType( wkb );
   }
-  if ( wkb % 1000 == 15 ) // is PolyhedralSurface, PolyhedralSurfaceZ, PolyhedralSurfaceM or PolyhedralSurfaceZM => map to MultiPolygon
+  if ( mOGRGeomType % 1000 == wkbPolyhedralSurface ) // is PolyhedralSurface, PolyhedralSurfaceZ, PolyhedralSurfaceM or PolyhedralSurfaceZM => map to MultiPolygon
   {
-    wkb = static_cast<QgsWkbTypes::Type>( wkb - 9 );
+    wkb = static_cast<QgsWkbTypes::Type>( mOGRGeomType - ( wkbPolyhedralSurface - wkbMultiPolygon ) );
   }
-  else if ( wkb % 1000 == 16 ) // is TIN, TINZ, TINM or TINZM => map to MultiPolygon
+  else if ( mOGRGeomType % 1000 == wkbTIN ) // is TIN, TINZ, TINM or TINZM => map to MultiPolygon
   {
-    wkb = static_cast<QgsWkbTypes::Type>( wkb - 10 );
+    wkb = static_cast<QgsWkbTypes::Type>( mOGRGeomType - ( wkbTIN - wkbMultiPolygon ) );
   }
   return wkb;
 }
diff --git a/src/providers/ogr/qgsogrprovider.h b/src/providers/ogr/qgsogrprovider.h
index 5d6a7fd7c8..9e7e281101 100644
--- a/src/providers/ogr/qgsogrprovider.h
+++ b/src/providers/ogr/qgsogrprovider.h
@@ -151,7 +151,7 @@ class QgsOgrProvider : public QgsVectorDataProvider
     bool doesStrictFeatureTypeCheck() const override;
 
     //! Returns OGR geometry type
-    static OGRwkbGeometryType getOgrGeomType( OGRLayerH ogrLayer );
+    static OGRwkbGeometryType getOgrGeomType( const QString &driverName, OGRLayerH ogrLayer );
 
     //! Gets single flatten geometry type
     static OGRwkbGeometryType ogrWkbSingleFlatten( OGRwkbGeometryType type );
diff --git a/src/providers/postgres/qgspostgresconn.cpp b/src/providers/postgres/qgspostgresconn.cpp
index d123548481..a3b8b301b9 100644
--- a/src/providers/postgres/qgspostgresconn.cpp
+++ b/src/providers/postgres/qgspostgresconn.cpp
@@ -107,7 +107,7 @@ QString QgsPostgresResult::PQfname( int col )
   return QString::fromUtf8( ::PQfname( mRes, col ) );
 }
 
-int QgsPostgresResult::PQftable( int col )
+Oid QgsPostgresResult::PQftable( int col )
 {
   Q_ASSERT( mRes );
   return ::PQftable( mRes, col );
@@ -119,7 +119,7 @@ int QgsPostgresResult::PQftablecol( int col )
   return ::PQftablecol( mRes, col );
 }
 
-int QgsPostgresResult::PQftype( int col )
+Oid QgsPostgresResult::PQftype( int col )
 {
   Q_ASSERT( mRes );
   return ::PQftype( mRes, col );
diff --git a/src/providers/postgres/qgspostgresconn.h b/src/providers/postgres/qgspostgresconn.h
index 35779cf318..d58bee2670 100644
--- a/src/providers/postgres/qgspostgresconn.h
+++ b/src/providers/postgres/qgspostgresconn.h
@@ -167,8 +167,8 @@ class QgsPostgresResult
 
     int PQnfields();
     QString PQfname( int col );
-    int PQftable( int col );
-    int PQftype( int col );
+    Oid PQftable( int col );
+    Oid PQftype( int col );
     int PQfmod( int col );
     int PQftablecol( int col );
     Oid PQoidValue();
diff --git a/src/providers/postgres/qgspostgresdataitems.cpp b/src/providers/postgres/qgspostgresdataitems.cpp
index 8c6279c91d..d3ac1a7cfc 100644
--- a/src/providers/postgres/qgspostgresdataitems.cpp
+++ b/src/providers/postgres/qgspostgresdataitems.cpp
@@ -340,7 +340,9 @@ QList<QAction *> QgsPGLayerItem::actions( QWidget *parent )
 
 void QgsPGLayerItem::deleteLayer()
 {
-  if ( QMessageBox::question( nullptr, QObject::tr( "Delete Table" ),
+  QString typeName = mLayerProperty.isView ? tr( "View" ) : tr( "Table" );
+
+  if ( QMessageBox::question( nullptr, tr( "Delete %1" ).arg( typeName ),
                               QObject::tr( "Are you sure you want to delete %1.%2?" ).arg( mLayerProperty.schemaName, mLayerProperty.tableName ),
                               QMessageBox::Yes | QMessageBox::No, QMessageBox::No ) != QMessageBox::Yes )
     return;
@@ -349,11 +351,11 @@ void QgsPGLayerItem::deleteLayer()
   bool res = ::deleteLayer( mUri, errCause );
   if ( !res )
   {
-    QMessageBox::warning( nullptr, tr( "Delete Table" ), errCause );
+    QMessageBox::warning( nullptr, tr( "Delete %1" ).arg( typeName ), errCause );
   }
   else
   {
-    QMessageBox::information( nullptr, tr( "Delete Table" ), tr( "Table deleted successfully." ) );
+    QMessageBox::information( nullptr, tr( "Delete %1" ).arg( typeName ), tr( "%1 deleted successfully." ).arg( typeName ) );
     if ( mParent )
       mParent->refresh();
   }
diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp
index caa6c56a6b..0671db5dc4 100644
--- a/src/providers/postgres/qgspostgresprovider.cpp
+++ b/src/providers/postgres/qgspostgresprovider.cpp
@@ -752,7 +752,7 @@ bool QgsPostgresProvider::loadFields()
   sql = QStringLiteral( "SELECT oid,typname,typtype,typelem,typlen FROM pg_type" );
   QgsPostgresResult typeResult( connectionRO()->PQexec( sql ) );
 
-  QMap<int, PGTypeInfo> typeMap;
+  QMap<Oid, PGTypeInfo> typeMap;
   for ( int i = 0; i < typeResult.PQntuples(); ++i )
   {
     PGTypeInfo typeInfo =
@@ -762,20 +762,20 @@ bool QgsPostgresProvider::loadFields()
       /* typeElem = */ typeResult.PQgetvalue( i, 3 ),
       /* typeLen = */ typeResult.PQgetvalue( i, 4 ).toInt()
     };
-    typeMap.insert( typeResult.PQgetvalue( i, 0 ).toInt(), typeInfo );
+    typeMap.insert( typeResult.PQgetvalue( i, 0 ).toUInt(), typeInfo );
   }
 
 
-  QMap<int, QMap<int, QString> > fmtFieldTypeMap, descrMap, defValMap;
-  QMap<int, QMap<int, int> > attTypeIdMap;
-  QMap<int, QMap<int, bool> > notNullMap, uniqueMap;
+  QMap<Oid, QMap<int, QString> > fmtFieldTypeMap, descrMap, defValMap;
+  QMap<Oid, QMap<int, Oid> > attTypeIdMap;
+  QMap<Oid, QMap<int, bool> > notNullMap, uniqueMap;
   if ( result.PQnfields() > 0 )
   {
     // Collect table oids
-    QSet<int> tableoids;
+    QSet<Oid> tableoids;
     for ( int i = 0; i < result.PQnfields(); i++ )
     {
-      int tableoid = result.PQftable( i );
+      Oid tableoid = result.PQftable( i );
       if ( tableoid > 0 )
       {
         tableoids.insert( tableoid );
@@ -785,7 +785,8 @@ bool QgsPostgresProvider::loadFields()
     if ( !tableoids.isEmpty() )
     {
       QStringList tableoidsList;
-      Q_FOREACH ( int tableoid, tableoids )
+      const auto constTableoids = tableoids;
+      for ( Oid tableoid : constTableoids )
       {
         tableoidsList.append( QString::number( tableoid ) );
       }
@@ -804,12 +805,12 @@ bool QgsPostgresProvider::loadFields()
       QgsPostgresResult fmtFieldTypeResult( connectionRO()->PQexec( sql ) );
       for ( int i = 0; i < fmtFieldTypeResult.PQntuples(); ++i )
       {
-        int attrelid = fmtFieldTypeResult.PQgetvalue( i, 0 ).toInt();
-        int attnum = fmtFieldTypeResult.PQgetvalue( i, 1 ).toInt();
+        Oid attrelid = fmtFieldTypeResult.PQgetvalue( i, 0 ).toUInt();
+        int attnum = fmtFieldTypeResult.PQgetvalue( i, 1 ).toInt(); // Int2
         QString formatType = fmtFieldTypeResult.PQgetvalue( i, 2 );
         QString descr = fmtFieldTypeResult.PQgetvalue( i, 3 );
         QString defVal = fmtFieldTypeResult.PQgetvalue( i, 4 );
-        int attType = fmtFieldTypeResult.PQgetvalue( i, 5 ).toInt();
+        Oid attType = fmtFieldTypeResult.PQgetvalue( i, 5 ).toUInt();
         bool attNotNull = fmtFieldTypeResult.PQgetvalue( i, 6 ).toInt();
         bool uniqueConstraint = fmtFieldTypeResult.PQgetvalue( i, 7 ).toInt();
         fmtFieldTypeMap[attrelid][attnum] = formatType;
@@ -830,12 +831,12 @@ bool QgsPostgresProvider::loadFields()
     if ( fieldName == mGeometryColumn )
       continue;
 
-    int fldtyp = result.PQftype( i );
+    Oid fldtyp = result.PQftype( i );
     int fldMod = result.PQfmod( i );
     int fieldPrec = -1;
-    int tableoid = result.PQftable( i );
+    Oid tableoid = result.PQftable( i );
     int attnum = result.PQftablecol( i );
-    int atttypid = attTypeIdMap[tableoid][attnum];
+    Oid atttypid = attTypeIdMap[tableoid][attnum];
 
     const PGTypeInfo &typeInfo = typeMap.value( fldtyp );
     QString fieldTypeName = typeInfo.typeName;
@@ -3169,7 +3170,7 @@ bool QgsPostgresProvider::setSubsetString( const QString &theSQL, bool updateFea
  */
 long QgsPostgresProvider::featureCount() const
 {
-  int featuresCounted = mShared->featuresCounted();
+  long featuresCounted = mShared->featuresCounted();
   if ( featuresCounted >= 0 )
     return featuresCounted;
 
@@ -4642,6 +4643,28 @@ QGISEXTERN bool deleteLayer( const QString &uri, QString &errCause )
     return false;
   }
 
+  // handle deletion of views
+  QString sqlViewCheck = QStringLiteral( "SELECT relkind FROM pg_class WHERE oid=regclass(%1)::oid" )
+                         .arg( QgsPostgresConn::quotedValue( schemaTableName ) );
+  QgsPostgresResult resViewCheck( conn->PQexec( sqlViewCheck ) );
+  QString type = resViewCheck.PQgetvalue( 0, 0 );
+  if ( type == QLatin1String( "v" ) || type == QLatin1String( "m" ) )
+  {
+    QString sql = QString( "DROP VIEW %1" ).arg( schemaTableName );
+    QgsPostgresResult result( conn->PQexec( sql ) );
+    if ( result.PQresultStatus() != PGRES_COMMAND_OK )
+    {
+      errCause = QObject::tr( "Unable to delete view %1: \n%2" )
+                 .arg( schemaTableName,
+                       result.PQresultErrorMessage() );
+      conn->unref();
+      return false;
+    }
+    conn->unref();
+    return true;
+  }
+
+
   // check the geometry column count
   QString sql = QString( "SELECT count(*) "
                          "FROM geometry_columns, pg_class, pg_namespace "
diff --git a/src/providers/wcs/qgswcsprovider.cpp b/src/providers/wcs/qgswcsprovider.cpp
index f88b104d25..6bdaad905a 100644
--- a/src/providers/wcs/qgswcsprovider.cpp
+++ b/src/providers/wcs/qgswcsprovider.cpp
@@ -476,7 +476,7 @@ void QgsWcsProvider::setQueryItem( QUrl &url, const QString &item, const QString
   url.addQueryItem( item, value );
 }
 
-void QgsWcsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, void *block, QgsRasterBlockFeedback *feedback )
+bool QgsWcsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, void *block, QgsRasterBlockFeedback *feedback )
 {
   // TODO: set block to null values, move that to function and call only if fails
   memset( block, 0, pixelWidth * pixelHeight * QgsRasterBlock::typeSize( dataType( bandNo ) ) );
@@ -486,7 +486,7 @@ void QgsWcsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int
   // (higher level checks) but it is better to do check here as well
   if ( !viewExtent.intersects( mCoverageExtent ) )
   {
-    return;
+    return false;
   }
 
   // Can we reuse the previously cached coverage?
@@ -532,7 +532,7 @@ void QgsWcsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int
         // If it happens, it would be possible to rescale the portion we get
         // to only part of the data block, but it is better to left it
         // blank, so that the problem may be discovered in its origin.
-        return;
+        return false;
       }
     }
 
@@ -554,7 +554,7 @@ void QgsWcsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int
       if ( ! tmpData )
       {
         QgsDebugMsg( QStringLiteral( "Couldn't allocate memory of %1 bytes" ).arg( size ) );
-        return;
+        return false;
       }
       if ( GDALRasterIO( gdalBand, GF_Read, 0, 0, width, height, tmpData, width, height, ( GDALDataType ) mGdalDataType.at( bandNo - 1 ), 0, 0 ) != CE_None )
       {
@@ -592,6 +592,7 @@ void QgsWcsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int
       QgsMessageLog::logMessage( tr( "Received coverage has wrong size %1 x %2 (expected %3 x %4)" ).arg( width ).arg( height ).arg( pixelWidth ).arg( pixelHeight ), tr( "WCS" ) );
     }
   }
+  return true;
 }
 
 void QgsWcsProvider::getCache( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, QString crs, QgsRasterBlockFeedback *feedback ) const
@@ -795,12 +796,13 @@ void QgsWcsProvider::getCache( int bandNo, QgsRectangle  const &viewExtent, int
 
 // For stats only, maybe change QgsRasterDataProvider::bandStatistics() to
 // use standard readBlock with extent
-void QgsWcsProvider::readBlock( int bandNo, int xBlock, int yBlock, void *block )
+bool QgsWcsProvider::readBlock( int bandNo, int xBlock, int yBlock, void *block )
 {
 
   QgsDebugMsg( QStringLiteral( "xBlock = %1 yBlock = %2" ).arg( xBlock ).arg( yBlock ) );
 
-  if ( !mHasSize ) return;
+  if ( !mHasSize )
+    return false;
 
   double xRes = mCoverageExtent.width() / mWidth;
   double yRes = mCoverageExtent.height() / mHeight;
@@ -815,7 +817,7 @@ void QgsWcsProvider::readBlock( int bandNo, int xBlock, int yBlock, void *block
 
   QgsRectangle extent( xMin, yMin, xMax, yMax );
 
-  readBlock( bandNo, extent, mXBlockSize, mYBlockSize, block, nullptr );
+  return readBlock( bandNo, extent, mXBlockSize, mYBlockSize, block, nullptr );
 }
 
 
diff --git a/src/providers/wcs/qgswcsprovider.h b/src/providers/wcs/qgswcsprovider.h
index 2e76a9e1ed..13fbe71194 100644
--- a/src/providers/wcs/qgswcsprovider.h
+++ b/src/providers/wcs/qgswcsprovider.h
@@ -144,9 +144,9 @@ class QgsWcsProvider : public QgsRasterDataProvider, QgsGdalProviderBase
 
     // TODO: Document this better.
 
-    void readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
+    bool readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
 
-    void readBlock( int bandNo, int xBlock, int yBlock, void *block ) override;
+    bool readBlock( int bandNo, int xBlock, int yBlock, void *block ) override;
 
     //! Download cache
     void getCache( int bandNo, QgsRectangle  const &viewExtent, int width, int height, QString crs = QString(), QgsRasterBlockFeedback *feedback = nullptr ) const;
diff --git a/src/providers/wfs/qgswfscapabilities.cpp b/src/providers/wfs/qgswfscapabilities.cpp
index 2bc9131d36..9f337e0c27 100644
--- a/src/providers/wfs/qgswfscapabilities.cpp
+++ b/src/providers/wfs/qgswfscapabilities.cpp
@@ -87,6 +87,32 @@ QString QgsWfsCapabilities::Capabilities::addPrefixIfNeeded( const QString &name
   return mapUnprefixedTypenameToPrefixedTypename[name];
 }
 
+QString QgsWfsCapabilities::Capabilities::getNamespaceForTypename( const QString &name ) const
+{
+  Q_FOREACH ( const QgsWfsCapabilities::FeatureType &f, featureTypes )
+  {
+    if ( f.name == name )
+    {
+      return f.nameSpace;
+    }
+  }
+  return "";
+}
+
+QString QgsWfsCapabilities::Capabilities::getNamespaceParameterValue( const QString &WFSVersion, const QString &typeName ) const
+{
+  QString namespaces = getNamespaceForTypename( typeName );
+  bool tryNameSpacing = ( !namespaces.isEmpty() && typeName.contains( ':' ) );
+  if ( tryNameSpacing )
+  {
+    QString prefixOfTypename = typeName.section( ':', 0, 0 );
+    return "xmlns(" + prefixOfTypename +
+           ( WFSVersion.startsWith( QLatin1String( "2.0" ) ) ? "," : "=" ) +
+           namespaces + ")";
+  }
+  return QString();
+}
+
 class CPLXMLTreeUniquePointer
 {
   public:
@@ -404,6 +430,14 @@ void QgsWfsCapabilities::capabilitiesReplyFinished()
         if ( psFeatureTypeIter )
         {
           featureType.nameSpace = CPLGetXMLValue( psFeatureTypeIter, ( "xmlns:" + prefixOfTypename ).toUtf8().constData(), "" );
+          if ( featureType.nameSpace.isEmpty() )
+          {
+            //Try to look for namespace in Name tag (Seen in GO Publisher)
+            //<wfs:FeatureType>
+            // <wfs:Name xmlns:dagi="http://data.gov.dk/schemas/dagi/2/gml3sfp">dagi:Menighedsraadsafstemningsomraade</wfs:Name>
+            // <wfs:Title>Menighedsraadsafstemningsomraade</wfs:Title>
+            featureType.nameSpace = CPLGetXMLValue( psFeatureTypeIter, ( "wfs:Name.xmlns:" + prefixOfTypename ).toUtf8().constData(), "" );
+          }
         }
       }
     }
@@ -810,3 +844,4 @@ QString QgsWfsCapabilities::errorMessageWithReason( const QString &reason )
 {
   return tr( "Download of capabilities failed: %1" ).arg( reason );
 }
+
diff --git a/src/providers/wfs/qgswfscapabilities.h b/src/providers/wfs/qgswfscapabilities.h
index 058781fe48..d2b3f0a4db 100644
--- a/src/providers/wfs/qgswfscapabilities.h
+++ b/src/providers/wfs/qgswfscapabilities.h
@@ -107,6 +107,8 @@ class QgsWfsCapabilities : public QgsWfsRequest
 
       void clear();
       QString addPrefixIfNeeded( const QString &name ) const;
+      QString getNamespaceForTypename( const QString &name ) const;
+      QString getNamespaceParameterValue( const QString &WFSVersion, const QString &typeName ) const;
     };
 
     //! Returns parsed capabilities - requestCapabilities() must be called before
diff --git a/src/providers/wfs/qgswfsdescribefeaturetype.cpp b/src/providers/wfs/qgswfsdescribefeaturetype.cpp
index d62e1fded8..3d9ca26ca9 100644
--- a/src/providers/wfs/qgswfsdescribefeaturetype.cpp
+++ b/src/providers/wfs/qgswfsdescribefeaturetype.cpp
@@ -14,6 +14,7 @@
  ***************************************************************************/
 
 #include "qgswfsdescribefeaturetype.h"
+#include "qgsmessagelog.h"
 
 QgsWFSDescribeFeatureType::QgsWFSDescribeFeatureType( QgsWFSDataSourceURI &uri )
   : QgsWfsRequest( uri )
@@ -21,12 +22,27 @@ QgsWFSDescribeFeatureType::QgsWFSDescribeFeatureType( QgsWFSDataSourceURI &uri )
 }
 
 bool QgsWFSDescribeFeatureType::requestFeatureType( const QString &WFSVersion,
-    const QString &typeName, bool bUsePlural )
+    const QString &typeName, const QgsWfsCapabilities::Capabilities &caps )
 {
   QUrl url( mUri.requestUrl( QStringLiteral( "DescribeFeatureType" ) ) );
   url.addQueryItem( QStringLiteral( "VERSION" ), WFSVersion );
-  url.addQueryItem( bUsePlural ?
-                    QStringLiteral( "TYPENAMES" ) : QStringLiteral( "TYPENAME" ), typeName );
+
+  QString namespaceValue( caps.getNamespaceParameterValue( WFSVersion, typeName ) );
+
+  if ( WFSVersion.startsWith( QLatin1String( "2.0" ) ) )
+  {
+    url.addQueryItem( QStringLiteral( "TYPENAMES" ), typeName );
+    if ( !namespaceValue.isEmpty() )
+    {
+      url.addQueryItem( QStringLiteral( "NAMESPACES" ), namespaceValue );
+    }
+  }
+
+  url.addQueryItem( QStringLiteral( "TYPENAME" ), typeName );
+  if ( !namespaceValue.isEmpty() )
+  {
+    url.addQueryItem( QStringLiteral( "NAMESPACE" ), namespaceValue );
+  }
 
   return sendGET( url, true, false );
 }
diff --git a/src/providers/wfs/qgswfsdescribefeaturetype.h b/src/providers/wfs/qgswfsdescribefeaturetype.h
index 9c2c75ac17..33892e5c46 100644
--- a/src/providers/wfs/qgswfsdescribefeaturetype.h
+++ b/src/providers/wfs/qgswfsdescribefeaturetype.h
@@ -16,6 +16,7 @@
 #define QGSWFSDESCRIBEFEATURETYPE_H
 
 #include "qgswfsrequest.h"
+#include "qgswfscapabilities.h"
 
 //! Manages the DescribeFeatureType request
 class QgsWFSDescribeFeatureType : public QgsWfsRequest
@@ -25,7 +26,9 @@ class QgsWFSDescribeFeatureType : public QgsWfsRequest
     explicit QgsWFSDescribeFeatureType( QgsWFSDataSourceURI &uri );
 
     //! Issue the request
-    bool requestFeatureType( const QString &WFSVersion, const QString &typeName, bool bUsePlural );
+    bool requestFeatureType( const QString &WFSVersion,
+                             const QString &typeName,
+                             const QgsWfsCapabilities::Capabilities &caps );
 
   protected:
     QString errorMessageWithReason( const QString &reason ) override;
diff --git a/src/providers/wfs/qgswfsfeatureiterator.cpp b/src/providers/wfs/qgswfsfeatureiterator.cpp
index 35e039c8d6..9217a39bc1 100644
--- a/src/providers/wfs/qgswfsfeatureiterator.cpp
+++ b/src/providers/wfs/qgswfsfeatureiterator.cpp
@@ -165,6 +165,12 @@ void QgsWFSFeatureDownloader::createProgressDialog()
 {
   Q_ASSERT( qApp->thread() == QThread::currentThread() );
 
+  // Make sure that the creation is done in an atomic way, so that the
+  // starting thread (running QgsWFSFeatureDownloader::run()) can be sure that
+  // this function has either run completely, or not at all (mStop == true),
+  // when it wants to destroy mProgressDialog
+  QMutexLocker locker( &mMutexCreateProgressDialog );
+
   if ( mStop )
     return;
   Q_ASSERT( !mProgressDialog );
@@ -222,22 +228,7 @@ QUrl QgsWFSFeatureDownloader::buildURL( qint64 startIndex, int maxFeatures, bool
   if ( mShared->mLayerPropertiesList.isEmpty() )
   {
     typenames = mShared->mURI.typeName();
-
-    // Add NAMESPACES parameter for server that declare a namespace in the FeatureType of GetCapabilities response
-    // See https://issues.qgis.org/issues/14685
-    Q_FOREACH ( const QgsWfsCapabilities::FeatureType &f, mShared->mCaps.featureTypes )
-    {
-      if ( f.name == typenames )
-      {
-        if ( !f.nameSpace.isEmpty() && f.name.contains( ':' ) )
-        {
-          QString prefixOfTypename = f.name.section( ':', 0, 0 );
-          namespaces = "xmlns(" + prefixOfTypename + "," + f.nameSpace + ")";
-        }
-        break;
-      }
-    }
-
+    namespaces = mShared->mCaps.getNamespaceParameterValue( mShared->mWFSVersion, typenames );
   }
   else
   {
@@ -250,8 +241,8 @@ QUrl QgsWFSFeatureDownloader::buildURL( qint64 startIndex, int maxFeatures, bool
   }
   if ( mShared->mWFSVersion.startsWith( QLatin1String( "2.0" ) ) )
     getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAMES" ),  typenames );
-  else
-    getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAME" ),  typenames );
+  getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAME" ),  typenames );
+
   if ( forHits )
   {
     getFeatureUrl.addQueryItem( QStringLiteral( "RESULTTYPE" ), QStringLiteral( "hits" ) );
@@ -407,8 +398,9 @@ QUrl QgsWFSFeatureDownloader::buildURL( qint64 startIndex, int maxFeatures, bool
 
   if ( !namespaces.isEmpty() )
   {
-    getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACES" ),
-                                namespaces );
+    if ( mShared->mWFSVersion.startsWith( QLatin1String( "2.0" ) ) )
+      getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACES" ), namespaces );
+    getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACE" ), namespaces );
   }
 
   QgsDebugMsgLevel( QStringLiteral( "WFS GetFeature URL: %1" ).arg( getFeatureUrl.toDisplayString( ) ), 2 );
@@ -847,7 +839,10 @@ void QgsWFSFeatureDownloader::run( bool serializeFeatures, int maxFeatures )
     }
   }
 
-  mStop = true;
+  {
+    QMutexLocker locker( &mMutexCreateProgressDialog );
+    mStop = true;
+  }
 
   if ( serializeFeatures )
     mShared->endOfDownload( success, mTotalDownloadedFeatureCount, truncatedResponse, interrupted, mErrorMessage );
@@ -870,6 +865,7 @@ void QgsWFSFeatureDownloader::run( bool serializeFeatures, int maxFeatures )
     mTimer->deleteLater();
     mTimer = nullptr;
   }
+
   // explicitly abort here so that mReply is destroyed within the right thread
   // otherwise will deadlock because deleteLayer() will not have a valid thread to post
   abort();
@@ -1032,7 +1028,7 @@ QgsFeatureRequest QgsWFSFeatureIterator::buildRequestCache( int genCounter )
     QgsAttributeList cacheSubSet;
     Q_FOREACH ( int i, mRequest.subsetOfAttributes() )
     {
-      int idx = dataProviderFields.indexFromName( mShared->mFields.at( i ).name() );
+      int idx = dataProviderFields.indexFromName( mShared->mMapGMLFieldNameToSQLiteColumnName[mShared->mFields.at( i ).name()] );
       if ( idx >= 0 )
         cacheSubSet.append( idx );
       idx = mShared->mFields.indexFromName( mShared->mFields.at( i ).name() );
@@ -1045,7 +1041,7 @@ QgsFeatureRequest QgsWFSFeatureIterator::buildRequestCache( int genCounter )
     {
       Q_FOREACH ( const QString &field, mRequest.filterExpression()->referencedColumns() )
       {
-        int idx = dataProviderFields.indexFromName( field );
+        int idx = dataProviderFields.indexFromName( mShared->mMapGMLFieldNameToSQLiteColumnName[field] );
         if ( idx >= 0 && !cacheSubSet.contains( idx ) )
           cacheSubSet.append( idx );
         idx = mShared->mFields.indexFromName( field );
@@ -1255,7 +1251,7 @@ bool QgsWFSFeatureIterator::fetchFeature( QgsFeature &f )
       continue;
     }
 
-    copyFeature( cachedFeature, f );
+    copyFeature( cachedFeature, f, true );
     geometryToDestinationCrs( f, mTransform );
 
     // Retrieve the user-visible id from the Spatialite cache database Id
@@ -1267,6 +1263,7 @@ bool QgsWFSFeatureIterator::fetchFeature( QgsFeature &f )
       if ( stmt.step() == SQLITE_ROW )
       {
         f.setId( stmt.columnAsInt64( 0 ) );
+        Q_ASSERT( stmt.step() != SQLITE_ROW );
       }
     }
 
@@ -1349,7 +1346,7 @@ bool QgsWFSFeatureIterator::fetchFeature( QgsFeature &f )
           continue;
         }
 
-        copyFeature( feat, f );
+        copyFeature( feat, f, false );
         return true;
       }
 
@@ -1436,7 +1433,7 @@ bool QgsWFSFeatureIterator::close()
 }
 
 
-void QgsWFSFeatureIterator::copyFeature( const QgsFeature &srcFeature, QgsFeature &dstFeature )
+void QgsWFSFeatureIterator::copyFeature( const QgsFeature &srcFeature, QgsFeature &dstFeature, bool srcIsCache )
 {
   //copy the geometry
   QgsGeometry geometry = srcFeature.geometry();
@@ -1457,7 +1454,7 @@ void QgsWFSFeatureIterator::copyFeature( const QgsFeature &srcFeature, QgsFeatur
 
   auto setAttr = [ & ]( const int i )
   {
-    int idx = srcFeature.fields().indexFromName( fields.at( i ).name() );
+    int idx = srcFeature.fields().indexFromName( srcIsCache ? mShared->mMapGMLFieldNameToSQLiteColumnName[fields.at( i ).name()] : fields.at( i ).name() );
     if ( idx >= 0 )
     {
       const QVariant &v = srcFeature.attributes().value( idx );
diff --git a/src/providers/wfs/qgswfsfeatureiterator.h b/src/providers/wfs/qgswfsfeatureiterator.h
index 61979b672c..deab6aa6f3 100644
--- a/src/providers/wfs/qgswfsfeatureiterator.h
+++ b/src/providers/wfs/qgswfsfeatureiterator.h
@@ -158,6 +158,7 @@ class QgsWFSFeatureDownloader: public QgsWfsRequest
     QTimer *mTimer = nullptr;
     QgsWFSFeatureHitsAsyncRequest mFeatureHitsAsyncRequest;
     qint64 mTotalDownloadedFeatureCount;
+    QMutex mMutexCreateProgressDialog;
 };
 
 //! Downloader thread
@@ -227,7 +228,7 @@ class QgsWFSFeatureIterator : public QObject,
     bool fetchFeature( QgsFeature &f ) override;
 
     //! Copies feature attributes / geometry from srcFeature to dstFeature
-    void copyFeature( const QgsFeature &srcFeature, QgsFeature &dstFeature );
+    void copyFeature( const QgsFeature &srcFeature, QgsFeature &dstFeature, bool srcIsCache );
 
     std::shared_ptr<QgsWFSSharedData> mShared;  //!< Mutable data shared between provider and feature sources
 
diff --git a/src/providers/wfs/qgswfsnewconnection.cpp b/src/providers/wfs/qgswfsnewconnection.cpp
index a7adf6a6e8..67c1c5e628 100644
--- a/src/providers/wfs/qgswfsnewconnection.cpp
+++ b/src/providers/wfs/qgswfsnewconnection.cpp
@@ -35,7 +35,15 @@ QgsWFSNewConnection::~QgsWFSNewConnection()
 void QgsWFSNewConnection::versionDetectButton()
 {
   delete mCapabilities;
-  mCapabilities = new QgsWfsCapabilities( urlTrimmed().toString() );
+
+  // Honor any defined authentication settings
+  QgsDataSourceUri uri = QgsDataSourceUri();
+  uri.setParam( QStringLiteral( "url" ), urlTrimmed().toString() );
+  uri.setUsername( authSettingsWidget()->username() );
+  uri.setPassword( authSettingsWidget()->password() );
+  uri.setAuthConfigId( authSettingsWidget()->configId() );
+
+  mCapabilities = new QgsWfsCapabilities( uri.uri( false ) );
   connect( mCapabilities, &QgsWfsCapabilities::gotCapabilities, this, &QgsWFSNewConnection::capabilitiesReplyFinished );
   const bool synchronous = false;
   const bool forceRefresh = true;
diff --git a/src/providers/wfs/qgswfsprovider.cpp b/src/providers/wfs/qgswfsprovider.cpp
index e9fb71846a..2ebe8798a2 100644
--- a/src/providers/wfs/qgswfsprovider.cpp
+++ b/src/providers/wfs/qgswfsprovider.cpp
@@ -420,32 +420,17 @@ bool QgsWFSProvider::processSQL( const QString &sqlString, QString &errorMsg, QS
   }
 
   QgsWFSDescribeFeatureType describeFeatureType( mShared->mURI );
-  bool bUsePlural = false;
-  QByteArray response;
-  for ( int i = 0; i < 2; i++ )
+  if ( !describeFeatureType.requestFeatureType( mShared->mWFSVersion,
+       concatenatedTypenames, mShared->mCaps ) )
   {
-    if ( !describeFeatureType.requestFeatureType( mShared->mWFSVersion,
-         concatenatedTypenames, bUsePlural ) )
-    {
-      errorMsg = tr( "DescribeFeatureType failed for url %1: %2" ).
-                 arg( dataSourceUri(), describeFeatureType.errorMessage() );
-      return false;
-    }
-
-    response = describeFeatureType.response();
-    // "http://geoportal.samregion.ru/wfs12?SERVICE=WFS&REQUEST=DescribeFeatureType&TYPENAME=EC_1_132&VERSION=2.0.0"
-    // returns a <ExceptionText><![CDATA[Missing typeNames parameter]]></ExceptionText>
-    if ( i == 0 && response.indexOf( "<![CDATA[Missing typeNames parameter]]>" ) >= 0 )
-    {
-      QgsDebugMsg( QStringLiteral( "Server does not accept TYPENAME parameter for DescribeFeatureType. Re-trying with TYPENAMES" ) );
-      bUsePlural = true;
-    }
-    else
-    {
-      break;
-    }
+    errorMsg = tr( "DescribeFeatureType failed for url %1: %2" ).
+               arg( dataSourceUri(), describeFeatureType.errorMessage() );
+    return false;
   }
 
+  QByteArray  response = describeFeatureType.response();
+
+
   QDomDocument describeFeatureDocument;
   errorMsg.clear();
   if ( !describeFeatureDocument.setContent( response, true, &errorMsg ) )
@@ -1277,43 +1262,17 @@ bool QgsWFSProvider::describeFeatureType( QString &geometryAttribute, QgsFields
   fields.clear();
 
   QgsWFSDescribeFeatureType describeFeatureType( mShared->mURI );
-  bool bUsePlural = false;
-  QByteArray response;
-  for ( int i = 0; i < 2; i++ )
-  {
-    if ( !describeFeatureType.requestFeatureType( mShared->mWFSVersion,
-         mShared->mURI.typeName(), bUsePlural ) )
-    {
-      QgsMessageLog::logMessage( tr( "DescribeFeatureType network request failed for url %1: %2" ).
-                                 arg( dataSourceUri(), describeFeatureType.errorMessage() ), tr( "WFS" ) );
-      return false;
-    }
 
-    response = describeFeatureType.response();
-    // "http://geoportal.samregion.ru/wfs12?SERVICE=WFS&REQUEST=DescribeFeatureType&TYPENAME=EC_1_132&VERSION=2.0.0"
-    // returns a <ExceptionText><![CDATA[Missing typeNames parameter]]></ExceptionText>
-    if ( i == 0 && response.indexOf( "<![CDATA[Missing typeNames parameter]]>" ) >= 0 )
-    {
-      QgsDebugMsg( QStringLiteral( "Server does not accept TYPENAME parameter for DescribeFeatureType. Re-trying with TYPENAMES" ) );
-      bUsePlural = true;
-    }
-    // "http://services.cuzk.cz/wfs/inspire-cp-wfs.asp?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=cp:CadastralParcel" returns
-    // <!--Generated by Marushka, version 4.2.5.0, GEOVAP, spol. s r.o., 31.05.2018.-->
-    // <ExceptionReport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0.0" xml:lang="en-US" xmlns="http://www.opengis.net/ows/1.1">
-    // <Exception exceptionCode="OperationProcessingFailed" />
-    // </ExceptionReport>
-    else if ( i == 0 && response.indexOf( "<!--Generated by Marushka" ) >= 0 &&
-              response.indexOf( "OperationProcessingFailed" ) >= 0 )
-    {
-      QgsDebugMsg( QStringLiteral( "Server does not accept TYPENAME parameter for DescribeFeatureType. Re-trying with TYPENAMES" ) );
-      bUsePlural = true;
-    }
-    else
-    {
-      break;
-    }
+  if ( !describeFeatureType.requestFeatureType( mShared->mWFSVersion,
+       mShared->mURI.typeName(), mShared->mCaps ) )
+  {
+    QgsMessageLog::logMessage( tr( "DescribeFeatureType network request failed for url %1: %2" ).
+                               arg( dataSourceUri(), describeFeatureType.errorMessage() ), tr( "WFS" ) );
+    return false;
   }
 
+  QByteArray response = describeFeatureType.response();
+
   QDomDocument describeFeatureDocument;
   QString errorMsg;
   if ( !describeFeatureDocument.setContent( response, true, &errorMsg ) )
diff --git a/src/providers/wfs/qgswfsrequest.cpp b/src/providers/wfs/qgswfsrequest.cpp
index 0856c7c0b6..e83ffcccb9 100644
--- a/src/providers/wfs/qgswfsrequest.cpp
+++ b/src/providers/wfs/qgswfsrequest.cpp
@@ -27,8 +27,6 @@
 #include <QFuture>
 #include <QtConcurrent>
 
-const qint64 READ_BUFFER_SIZE_HINT = 1024 * 1024;
-
 QgsWfsRequest::QgsWfsRequest( const QgsWFSDataSourceURI &uri )
   : mUri( uri )
   , mErrorCode( QgsWfsRequest::NoError )
@@ -141,7 +139,6 @@ bool QgsWfsRequest::sendGET( const QUrl &url, bool synchronous, bool forceRefres
     success = true;
     mReply = QgsNetworkAccessManager::instance()->get( request );
 
-    mReply->setReadBufferSize( READ_BUFFER_SIZE_HINT );
     if ( !mUri.auth().setAuthorizationReply( mReply ) )
     {
       mErrorCode = QgsWfsRequest::NetworkError;
@@ -262,7 +259,6 @@ bool QgsWfsRequest::sendPOST( const QUrl &url, const QString &contentTypeHeader,
   request.setHeader( QNetworkRequest::ContentTypeHeader, contentTypeHeader );
 
   mReply = QgsNetworkAccessManager::instance()->post( request, data );
-  mReply->setReadBufferSize( READ_BUFFER_SIZE_HINT );
   if ( !mUri.auth().setAuthorizationReply( mReply ) )
   {
     mErrorCode = QgsWfsRequest::NetworkError;
@@ -353,7 +349,6 @@ void QgsWfsRequest::replyFinished()
 
           QgsDebugMsgLevel( QStringLiteral( "redirected: %1 forceRefresh=%2" ).arg( redirect.toString() ).arg( mForceRefresh ), 4 );
           mReply = QgsNetworkAccessManager::instance()->get( request );
-          mReply->setReadBufferSize( READ_BUFFER_SIZE_HINT );
           if ( !mUri.auth().setAuthorizationReply( mReply ) )
           {
             mResponse.clear();
diff --git a/src/providers/wfs/qgswfsshareddata.cpp b/src/providers/wfs/qgswfsshareddata.cpp
index 2d0dae8919..0cd5afca53 100644
--- a/src/providers/wfs/qgswfsshareddata.cpp
+++ b/src/providers/wfs/qgswfsshareddata.cpp
@@ -33,6 +33,8 @@
 #include <cpl_conv.h>
 #include <ogr_api.h>
 
+#include <set>
+
 #include <sqlite3.h>
 
 QgsWFSSharedData::QgsWFSSharedData( const QString &uri )
@@ -230,6 +232,7 @@ bool QgsWFSSharedData::createCache()
   Q_ASSERT( !QFile::exists( mCacheDbname ) );
 
   QgsFields cacheFields;
+  std::set<QString> setSQLiteColumnNameUpperCase;
   for ( const QgsField &field : qgis::as_const( mFields ) )
   {
     QVariant::Type type = field.type();
@@ -240,7 +243,19 @@ bool QgsWFSSharedData::createCache()
       // it to a String
       type = QVariant::LongLong;
     }
-    cacheFields.append( QgsField( field.name(), type, field.typeName() ) );
+
+    // Make sure we don't have several field names that only differ by their case
+    QString sqliteFieldName( field.name() );
+    int counter = 2;
+    while ( setSQLiteColumnNameUpperCase.find( sqliteFieldName.toUpper() ) != setSQLiteColumnNameUpperCase.end() )
+    {
+      sqliteFieldName = field.name() + QStringLiteral( "%1" ).arg( counter );
+      counter++;
+    }
+    setSQLiteColumnNameUpperCase.insert( sqliteFieldName.toUpper() );
+    mMapGMLFieldNameToSQLiteColumnName[field.name()] = sqliteFieldName;
+
+    cacheFields.append( QgsField( sqliteFieldName, type, field.typeName() ) );
   }
   // Add some field for our internal use
   cacheFields.append( QgsField( QgsWFSConstants::FIELD_GEN_COUNTER, QVariant::Int, QStringLiteral( "int" ) ) );
@@ -384,6 +399,7 @@ bool QgsWFSSharedData::createCache()
     {
       mCacheTablename = QStringLiteral( "features" );
       sql = QStringLiteral( "CREATE TABLE %1 (%2 INTEGER PRIMARY KEY" ).arg( mCacheTablename, fidName );
+
       for ( const QgsField &field : qgis::as_const( cacheFields ) )
       {
         QString type( QStringLiteral( "VARCHAR" ) );
@@ -393,6 +409,7 @@ bool QgsWFSSharedData::createCache()
           type = QStringLiteral( "BIGINT" );
         else if ( field.type() == QVariant::Double )
           type = QStringLiteral( "REAL" );
+
         sql += QStringLiteral( ", %1 %2" ).arg( quotedIdentifier( field.name() ), type );
       }
       sql += QLatin1String( ")" );
@@ -867,7 +884,7 @@ bool QgsWFSSharedData::changeAttributeValues( const QgsChangedAttributesMap &att
     QgsAttributeMap newAttrMap;
     for ( QgsAttributeMap::const_iterator siter = attrs.begin(); siter != attrs.end(); ++siter )
     {
-      int idx = dataProviderFields.indexFromName( mFields.at( siter.key() ).name() );
+      int idx = dataProviderFields.indexFromName( mMapGMLFieldNameToSQLiteColumnName[mFields.at( siter.key() ).name()] );
       Q_ASSERT( idx >= 0 );
       if ( siter.value().type() == QVariant::DateTime && !siter.value().isNull() )
         newAttrMap[idx] = QVariant( siter.value().toDateTime().toMSecsSinceEpoch() );
@@ -985,7 +1002,7 @@ void QgsWFSSharedData::serializeFeatures( QVector<QgsWFSFeatureGmlIdPair> &featu
     //and the attributes
     for ( int i = 0; i < mFields.size(); i++ )
     {
-      int idx = dataProviderFields.indexFromName( mFields.at( i ).name() );
+      int idx = dataProviderFields.indexFromName( mMapGMLFieldNameToSQLiteColumnName[mFields.at( i ).name()] );
       if ( idx >= 0 )
       {
         const QVariant &v = gmlFeature.attributes().value( i );
@@ -1037,6 +1054,8 @@ void QgsWFSSharedData::serializeFeatures( QVector<QgsWFSFeatureGmlIdPair> &featu
       }
       else
       {
+        QString errorMsg;
+
         auto sql = QgsSqlite3Mprintf( "SELECT qgisId, dbId FROM id_cache WHERE gmlid = '%q'",
                                       gmlId.toUtf8().constData() );
         auto stmt = mCacheIdDb.prepare( sql, resultCode );
@@ -1047,11 +1066,16 @@ void QgsWFSSharedData::serializeFeatures( QVector<QgsWFSFeatureGmlIdPair> &featu
           QgsFeatureId oldDbId = stmt.columnAsInt64( 1 );
           if ( dbId != oldDbId )
           {
+            sql = QgsSqlite3Mprintf( "UPDATE id_cache SET dbId = NULL WHERE dbId = %lld",
+                                     dbId );
+            if ( mCacheIdDb.exec( sql, errorMsg ) != SQLITE_OK )
+            {
+              QgsMessageLog::logMessage( tr( "Problem when updating WFS id cache: %1 -> %2" ).arg( sql ).arg( errorMsg ), tr( "WFS" ) );
+            }
+
             sql = QgsSqlite3Mprintf( "UPDATE id_cache SET dbId = %lld WHERE gmlid = '%q'",
                                      dbId,
                                      gmlId.toUtf8().constData() );
-            //QgsDebugMsg( QStringLiteral( "%1" ).arg( sql ) );
-            QString errorMsg;
             if ( mCacheIdDb.exec( sql, errorMsg ) != SQLITE_OK )
             {
               QgsMessageLog::logMessage( tr( "Problem when updating WFS id cache: %1 -> %2" ).arg( sql ).arg( errorMsg ), tr( "WFS" ) );
@@ -1060,14 +1084,19 @@ void QgsWFSSharedData::serializeFeatures( QVector<QgsWFSFeatureGmlIdPair> &featu
         }
         else
         {
+          sql = QgsSqlite3Mprintf( "UPDATE id_cache SET dbId = NULL WHERE dbId = %lld",
+                                   dbId );
+          if ( mCacheIdDb.exec( sql, errorMsg ) != SQLITE_OK )
+          {
+            QgsMessageLog::logMessage( tr( "Problem when updating WFS id cache: %1 -> %2" ).arg( sql ).arg( errorMsg ), tr( "WFS" ) );
+          }
+
           qgisId = mNextCachedIdQgisId;
           mNextCachedIdQgisId ++;
           sql = QgsSqlite3Mprintf( "INSERT INTO id_cache (gmlid, dbId, qgisId) VALUES ('%q', %lld, %lld)",
                                    gmlId.toUtf8().constData(),
                                    dbId,
                                    qgisId );
-          //QgsDebugMsg( QStringLiteral( "%1" ).arg( sql ) );
-          QString errorMsg;
           if ( mCacheIdDb.exec( sql, errorMsg ) != SQLITE_OK )
           {
             QgsMessageLog::logMessage( tr( "Problem when updating WFS id cache: %1 -> %2" ).arg( sql ).arg( errorMsg ), tr( "WFS" ) );
@@ -1271,8 +1300,7 @@ int QgsWFSSharedData::getFeatureCount( bool issueRequestIfNeeded )
   {
     mGetFeatureHitsIssued = true;
     QgsWFSFeatureHitsRequest request( mURI );
-    int featureCount = request.getFeatureCount( mWFSVersion, mWFSFilter );
-
+    int featureCount = request.getFeatureCount( mWFSVersion, mWFSFilter, mCaps );
     {
       QMutexLocker locker( &mMutex );
       // Check the return value. Might be -1 in case of error, or might be
@@ -1343,14 +1371,26 @@ QgsWFSFeatureHitsRequest::QgsWFSFeatureHitsRequest( QgsWFSDataSourceURI &uri )
 }
 
 int QgsWFSFeatureHitsRequest::getFeatureCount( const QString &WFSVersion,
-    const QString &filter )
+    const QString &filter, const QgsWfsCapabilities::Capabilities &caps )
 {
+  QString typeName = mUri.typeName();
+
   QUrl getFeatureUrl( mUri.requestUrl( QStringLiteral( "GetFeature" ) ) );
   getFeatureUrl.addQueryItem( QStringLiteral( "VERSION" ),  WFSVersion );
   if ( WFSVersion.startsWith( QLatin1String( "2.0" ) ) )
-    getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAMES" ), mUri.typeName() );
-  else
-    getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAME" ), mUri.typeName() );
+  {
+    getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAMES" ), typeName );
+  }
+  getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAME" ), typeName );
+
+  QString namespaceValue( caps.getNamespaceParameterValue( WFSVersion, typeName ) );
+  if ( !namespaceValue.isEmpty() )
+  {
+    if ( WFSVersion.startsWith( QLatin1String( "2.0" ) ) )
+      getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACES" ), namespaceValue );
+    getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACE" ), namespaceValue );
+  }
+
   if ( !filter.isEmpty() )
   {
     getFeatureUrl.addQueryItem( QStringLiteral( "FILTER" ), filter );
@@ -1409,8 +1449,16 @@ QgsRectangle QgsWFSSingleFeatureRequest::getExtent()
   getFeatureUrl.addQueryItem( QStringLiteral( "VERSION" ),  mShared->mWFSVersion );
   if ( mShared->mWFSVersion .startsWith( QLatin1String( "2.0" ) ) )
     getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAMES" ), mUri.typeName() );
-  else
-    getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAME" ), mUri.typeName() );
+  getFeatureUrl.addQueryItem( QStringLiteral( "TYPENAME" ), mUri.typeName() );
+
+  QString namespaceValue( mShared->mCaps.getNamespaceParameterValue( mShared->mWFSVersion, mUri.typeName() ) );
+  if ( !namespaceValue.isEmpty() )
+  {
+    if ( mShared->mWFSVersion.startsWith( QLatin1String( "2.0" ) ) )
+      getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACES" ), namespaceValue );
+    getFeatureUrl.addQueryItem( QStringLiteral( "NAMESPACE" ), namespaceValue );
+  }
+
   if ( mShared->mWFSVersion .startsWith( QLatin1String( "2.0" ) ) )
     getFeatureUrl.addQueryItem( QStringLiteral( "COUNT" ), QString::number( 1 ) );
   else
diff --git a/src/providers/wfs/qgswfsshareddata.h b/src/providers/wfs/qgswfsshareddata.h
index 024dd50e80..78e3c641d1 100644
--- a/src/providers/wfs/qgswfsshareddata.h
+++ b/src/providers/wfs/qgswfsshareddata.h
@@ -22,6 +22,8 @@
 #include "qgsogcutils.h"
 #include "qgssqliteutils.h"
 
+#include <map>
+
 /**
  * This class holds data, and logic, shared between QgsWFSProvider, QgsWFSFeatureIterator
  *  and QgsWFSFeatureDownloader. It manages the on-disk cache, as a SpatiaLite
@@ -240,6 +242,10 @@ class QgsWFSSharedData : public QObject
     //! Tablename of the on-disk cache
     QString mCacheTablename;
 
+    //! Map each GML field name to the column name in the spatialite DB cache
+    // This is useful when there are GML fields with same name, but different case
+    std::map<QString, QString> mMapGMLFieldNameToSQLiteColumnName;
+
     //! Spatial index of requested cached regions
     QgsSpatialIndex mCachedRegions;
 
@@ -289,7 +295,7 @@ class QgsWFSFeatureHitsRequest: public QgsWfsRequest
     explicit QgsWFSFeatureHitsRequest( QgsWFSDataSourceURI &uri );
 
     //! Returns the feature count, or -1 in case of error
-    int getFeatureCount( const QString &WFSVersion, const QString &filter );
+    int getFeatureCount( const QString &WFSVersion, const QString &filter, const QgsWfsCapabilities::Capabilities &caps );
 
   protected:
     QString errorMessageWithReason( const QString &reason ) override;
diff --git a/src/providers/wms/qgswmsprovider.cpp b/src/providers/wms/qgswmsprovider.cpp
index 6a3c7a5ab4..2ee709d35c 100644
--- a/src/providers/wms/qgswmsprovider.cpp
+++ b/src/providers/wms/qgswmsprovider.cpp
@@ -563,7 +563,7 @@ void QgsWmsProvider::fetchOtherResTiles( QgsTileMode tileMode, const QgsRectangl
                 ( viewExtent.yMaximum() - r.rect.bottom() ) / cr,
                 r.rect.width() / cr,
                 r.rect.height() / cr );
-    otherResTiles << TileImage( dst, localImage );
+    otherResTiles << TileImage( dst, localImage, false );
 
     // see if there are any missing rects that are completely covered by this tile
     Q_FOREACH ( const QRectF &missingRect, missingRects )
@@ -773,12 +773,13 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, in
       if ( QgsTileCache::tile( r.url, localImage ) )
       {
         double cr = viewExtent.width() / image->width();
-
         QRectF dst( ( r.rect.left() - viewExtent.xMinimum() ) / cr,
                     ( viewExtent.yMaximum() - r.rect.bottom() ) / cr,
                     r.rect.width() / cr,
                     r.rect.height() / cr );
-        tileImages << TileImage( dst, localImage );
+        // if image size is "close enough" to destination size, don't smooth it out. Instead try for pixel-perfect placement!
+        bool disableSmoothing = ( qgsDoubleNear( dst.width(), tm->tileWidth, 2 ) && qgsDoubleNear( dst.height(), tm->tileHeight, 2 ) );
+        tileImages << TileImage( dst, localImage, !disableSmoothing );
       }
       else
       {
@@ -836,7 +837,7 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, in
     // draw composite in this resolution
     Q_FOREACH ( const TileImage &ti, tileImages )
     {
-      if ( mSettings.mSmoothPixmapTransform )
+      if ( ti.smooth && mSettings.mSmoothPixmapTransform )
         p.setRenderHint( QPainter::SmoothPixmapTransform, true );
       p.drawImage( ti.rect, ti.img );
 
@@ -883,15 +884,15 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, in
   return image;
 }
 
-void QgsWmsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, void *block, QgsRasterBlockFeedback *feedback )
+bool QgsWmsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int pixelWidth, int pixelHeight, void *block, QgsRasterBlockFeedback *feedback )
 {
   Q_UNUSED( bandNo );
   // TODO: optimize to avoid writing to QImage
-  QImage *image = draw( viewExtent, pixelWidth, pixelHeight, feedback );
+  std::unique_ptr< QImage > image( draw( viewExtent, pixelWidth, pixelHeight, feedback ) );
   if ( !image )   // should not happen
   {
     QgsMessageLog::logMessage( tr( "image is NULL" ), tr( "WMS" ) );
-    return;
+    return false;
   }
 
   QgsDebugMsg( QStringLiteral( "image height = %1 bytesPerLine = %2" ).arg( image->height() ) . arg( image->bytesPerLine() ) );
@@ -900,8 +901,7 @@ void QgsWmsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int
   if ( myExpectedSize != myImageSize )   // should not happen
   {
     QgsMessageLog::logMessage( tr( "unexpected image size" ), tr( "WMS" ) );
-    delete image;
-    return;
+    return false;
   }
 
   uchar *ptr = image->bits();
@@ -909,9 +909,12 @@ void QgsWmsProvider::readBlock( int bandNo, QgsRectangle  const &viewExtent, int
   {
     // If image is too large, ptr can be NULL
     memcpy( block, ptr, myExpectedSize );
+    return true;
+  }
+  else
+  {
+    return false;
   }
-
-  delete image;
 }
 
 QUrl QgsWmsProvider::createRequestUrlWMS( const QgsRectangle &viewExtent, int pixelWidth, int pixelHeight )
@@ -3941,7 +3944,9 @@ void QgsWmsTiledImageDownloadHandler::tileReplyFinished()
       if ( !myLocalImage.isNull() )
       {
         QPainter p( mImage );
-        if ( mSmoothPixmapTransform )
+        // if image size is "close enough" to destination size, don't smooth it out. Instead try for pixel-perfect placement!
+        const bool disableSmoothing = ( qgsDoubleNear( dst.width(), myLocalImage.width(), 2 ) && qgsDoubleNear( dst.height(), myLocalImage.height(), 2 ) );
+        if ( !disableSmoothing && mSmoothPixmapTransform )
           p.setRenderHint( QPainter::SmoothPixmapTransform, true );
         p.drawImage( dst, myLocalImage );
 #if 0
diff --git a/src/providers/wms/qgswmsprovider.h b/src/providers/wms/qgswmsprovider.h
index e306d637c9..9572153b14 100644
--- a/src/providers/wms/qgswmsprovider.h
+++ b/src/providers/wms/qgswmsprovider.h
@@ -146,7 +146,7 @@ class QgsWmsProvider : public QgsRasterDataProvider
      */
     void setConnectionName( QString const &connName );
 
-    void readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
+    bool readBlock( int bandNo, QgsRectangle  const &viewExtent, int width, int height, void *data, QgsRasterBlockFeedback *feedback = nullptr ) override;
     //void readBlock( int bandNo, QgsRectangle  const & viewExtent, int width, int height, QgsCoordinateReferenceSystem srcCRS, QgsCoordinateReferenceSystem destCRS, void *data );
 
     QgsRectangle extent() const override;
@@ -335,9 +335,10 @@ class QgsWmsProvider : public QgsRasterDataProvider
     //! Helper structure to store a cached tile image with its rectangle
     typedef struct TileImage
     {
-      TileImage( const QRectF &r, const QImage &i ): rect( r ), img( i ) {}
+      TileImage( const QRectF &r, const QImage &i, bool smooth ): rect( r ), img( i ), smooth( smooth ) {}
       QRectF rect; //!< Destination rectangle for a tile (in screen coordinates)
       QImage img;  //!< Cached tile to be drawn
+      bool smooth; //!< Whether to use antialiasing/smooth transforms when rendering tile
     } TileImage;
     //! Gets tiles from a different resolution to cover the missing areas
     void fetchOtherResTiles( QgsTileMode tileMode, const QgsRectangle &viewExtent, int imageWidth, QList<QRectF> &missing, double tres, int resOffset, QList<TileImage> &otherResTiles );
diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
index 88c8292d87..f3dfc2f8ef 100644
--- a/src/server/CMakeLists.txt
+++ b/src/server/CMakeLists.txt
@@ -40,6 +40,7 @@ SET(QGIS_SERVER_SRCS
   qgsserviceregistry.cpp
   qgsfeaturefilterprovidergroup.cpp
   qgsfeaturefilter.cpp
+  qgsstorebadlayerinfo.cpp
 )
 
 SET (QGIS_SERVER_HDRS
diff --git a/src/server/qgsconfigcache.cpp b/src/server/qgsconfigcache.cpp
index f430327a03..0f39fd2be1 100644
--- a/src/server/qgsconfigcache.cpp
+++ b/src/server/qgsconfigcache.cpp
@@ -17,7 +17,8 @@
 
 #include "qgsconfigcache.h"
 #include "qgsmessagelog.h"
-#include "qgsaccesscontrol.h"
+#include "qgsserverexception.h"
+#include "qgsstorebadlayerinfo.h"
 
 #include <QFile>
 
@@ -41,8 +42,16 @@ const QgsProject *QgsConfigCache::project( const QString &path )
   if ( ! mProjectCache[ path ] )
   {
     std::unique_ptr<QgsProject> prj( new QgsProject() );
+    QgsStoreBadLayerInfo *badLayerHandler = new QgsStoreBadLayerInfo();
+    prj->setBadLayerHandler( badLayerHandler );
     if ( prj->read( path ) )
     {
+      if ( !badLayerHandler->badLayers().isEmpty() )
+      {
+        QString errorMsg = QStringLiteral( "Layer(s) %1 not valid" ).arg( badLayerHandler->badLayers().join( ',' ) );
+        QgsMessageLog::logMessage( errorMsg, QStringLiteral( "Server" ), Qgis::Critical );
+        throw QgsServerException( QStringLiteral( "Layer(s) not valid" ) );
+      }
       mProjectCache.insert( path, prj.release() );
       mFileSystemWatcher.addPath( path );
     }
diff --git a/src/server/qgsstorebadlayerinfo.cpp b/src/server/qgsstorebadlayerinfo.cpp
new file mode 100644
index 0000000000..567b5dc423
--- /dev/null
+++ b/src/server/qgsstorebadlayerinfo.cpp
@@ -0,0 +1,36 @@
+/***************************************************************************
+                              qgsstorebadlayerinfo.cpp
+                              ------------------------
+  begin                : Jan 2019
+  copyright            : (C) 2019 by Marco Hugentobler
+  email                : marco dot hugentobler at sourcepole dot ch
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "qgsstorebadlayerinfo.h"
+#include <QDomElement>
+
+void QgsStoreBadLayerInfo::handleBadLayers( const QList<QDomNode> &layers )
+{
+  mBadLayerIds.clear();
+  QList<QDomNode>::const_iterator it = layers.constBegin();
+  for ( ; it != layers.constEnd(); ++it )
+  {
+    if ( !it->isNull() )
+    {
+      QDomElement idElem = it->firstChildElement( "id" );
+      if ( !idElem.isNull() )
+      {
+        mBadLayerIds.append( idElem.text() );
+      }
+    }
+  }
+}
diff --git a/src/server/qgsstorebadlayerinfo.h b/src/server/qgsstorebadlayerinfo.h
new file mode 100644
index 0000000000..9511149d12
--- /dev/null
+++ b/src/server/qgsstorebadlayerinfo.h
@@ -0,0 +1,47 @@
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef QGSSTOREBADLAYERINFO_H
+#define QGSSTOREBADLAYERINFO_H
+
+#include "qgsprojectbadlayerhandler.h"
+#include "qgis_server.h"
+#include <QStringList>
+
+/**
+ * \ingroup server
+ * Stores layer ids of bad layers
+ * \since QGIS 3.4.8
+ */
+class SERVER_EXPORT QgsStoreBadLayerInfo: public QgsProjectBadLayerHandler
+{
+  public:
+
+    /**
+     * Default constructor
+     */
+    QgsStoreBadLayerInfo() = default;
+
+    /**
+     * \brief handleBadLayers
+     * \param layers layer nodes
+     */
+    void handleBadLayers( const QList<QDomNode> &layers );
+
+    /**
+     * \brief badLayers
+     * \returns ids of bad layers
+     */
+    QStringList badLayers() const { return mBadLayerIds; }
+
+  private:
+    QStringList mBadLayerIds;
+};
+
+#endif // QGSSTOREBADLAYERINFO_H
diff --git a/src/server/services/wfs/qgswfsdescribefeaturetype.cpp b/src/server/services/wfs/qgswfsdescribefeaturetype.cpp
index e970fee869..9ade6a919b 100644
--- a/src/server/services/wfs/qgswfsdescribefeaturetype.cpp
+++ b/src/server/services/wfs/qgswfsdescribefeaturetype.cpp
@@ -296,7 +296,7 @@ namespace QgsWfs
         }
         else if ( attributeType == QVariant::Double )
         {
-          if ( field.length() != 0 && field.precision() == 0 )
+          if ( field.length() > 0 && field.precision() == 0 )
             attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "integer" ) );
           else
             attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "decimal" ) );
diff --git a/src/server/services/wms/qgswmsgetcapabilities.cpp b/src/server/services/wms/qgswmsgetcapabilities.cpp
index 9386fa8ea4..5b2d76baa1 100644
--- a/src/server/services/wms/qgswmsgetcapabilities.cpp
+++ b/src/server/services/wms/qgswmsgetcapabilities.cpp
@@ -129,7 +129,7 @@ namespace QgsWms
 
     if ( !capabilitiesDocument ) //capabilities xml not in cache. Create a new one
     {
-      QgsMessageLog::logMessage( QStringLiteral( "WMS capabilities document not found in cache" ) );
+      QgsMessageLog::logMessage( QStringLiteral( "WMS capabilities document not found in cache" ), QStringLiteral( "Server" ) );
 
       doc = getCapabilities( serverIface, project, version, request, projectSettings );
 
@@ -149,12 +149,12 @@ namespace QgsWms
       }
       else
       {
-        QgsMessageLog::logMessage( QStringLiteral( "Set WMS capabilities document in cache" ) );
+        QgsMessageLog::logMessage( QStringLiteral( "Set WMS capabilities document in cache" ), QStringLiteral( "Server" ) );
       }
     }
     else
     {
-      QgsMessageLog::logMessage( QStringLiteral( "Found WMS capabilities document in cache" ) );
+      QgsMessageLog::logMessage( QStringLiteral( "Found WMS capabilities document in cache" ), QStringLiteral( "Server" ) );
     }
 
     response.setHeader( QStringLiteral( "Content-Type" ), QStringLiteral( "text/xml; charset=utf-8" ) );
@@ -1049,6 +1049,20 @@ namespace QgsWms
                   // or the CRS extent otherwise
                   extent = vl->crs().bounds();
                 }
+                // If CRS is different transform it to layer's CRS
+                else if ( vl->crs() != project->crs() )
+                {
+                  try
+                  {
+                    QgsCoordinateTransform ct( project->crs(), vl->crs(), project->transformContext() );
+                    extent = ct.transform( extent );
+                  }
+                  catch ( QgsCsException &cse )
+                  {
+                    QgsMessageLog::logMessage( QStringLiteral( "Error transforming extent for layer %1: %2" ).arg( vl->name() ).arg( cse.what() ), QStringLiteral( "Server" ), Qgis::MessageLevel::Warning );
+                    continue;
+                  }
+                }
               }
             }
 
@@ -1335,8 +1349,9 @@ namespace QgsWms
         {
           wgs84BoundingRect = exGeoTransform.transformBoundingBox( layerExtent );
         }
-        catch ( const QgsCsException & )
+        catch ( const QgsCsException &cse )
         {
+          QgsMessageLog::logMessage( QStringLiteral( "Error transforming extent: %1" ).arg( cse.what() ), QStringLiteral( "Server" ), Qgis::MessageLevel::Warning );
           wgs84BoundingRect = QgsRectangle();
         }
       }
@@ -1430,7 +1445,7 @@ namespace QgsWms
         }
         catch ( QgsCsException &cse )
         {
-          Q_UNUSED( cse );
+          QgsMessageLog::logMessage( QStringLiteral( "Error transforming extent: %1" ).arg( cse.what() ), QStringLiteral( "Server" ), Qgis::MessageLevel::Warning );
           return;
         }
       }
@@ -1543,8 +1558,9 @@ namespace QgsWms
       {
         BBox = t.transformBoundingBox( BBox );
       }
-      catch ( const QgsCsException & )
+      catch ( const QgsCsException &cse )
       {
+        QgsMessageLog::logMessage( QStringLiteral( "Error transforming extent: %1" ).arg( cse.what() ), QStringLiteral( "Server" ), Qgis::MessageLevel::Warning );
         BBox = QgsRectangle();
       }
 
diff --git a/src/server/services/wms/qgswmsgetcontext.cpp b/src/server/services/wms/qgswmsgetcontext.cpp
index 830f993c65..11c2002136 100644
--- a/src/server/services/wms/qgswmsgetcontext.cpp
+++ b/src/server/services/wms/qgswmsgetcontext.cpp
@@ -284,11 +284,11 @@ namespace QgsWms
           // visibility
           if ( treeLayer->itemVisibilityChecked() )
           {
-            layerElem.setAttribute( QStringLiteral( "hidden" ), QStringLiteral( "true" ) );
+            layerElem.setAttribute( QStringLiteral( "hidden" ), QStringLiteral( "false" ) );
           }
           else
           {
-            layerElem.setAttribute( QStringLiteral( "hidden" ), QStringLiteral( "false" ) );
+            layerElem.setAttribute( QStringLiteral( "hidden" ), QStringLiteral( "true" ) );
           }
 
           // layer group
diff --git a/src/server/services/wms/qgswmsparameters.cpp b/src/server/services/wms/qgswmsparameters.cpp
index 38bf34db80..b74b80d54b 100644
--- a/src/server/services/wms/qgswmsparameters.cpp
+++ b/src/server/services/wms/qgswmsparameters.cpp
@@ -1380,13 +1380,15 @@ namespace QgsWms
       {
         // filter format: "LayerName:filterString;LayerName2:filterString2;..."
         // several filters can be defined for one layer
-        const QStringList splits = f.split( ':' );
-        if ( splits.size() == 2 )
+        const int colonIndex = f.indexOf( ':' );
+        if ( colonIndex != -1 )
         {
-          QgsWmsParametersFilter filter;
-          filter.mFilter = splits[1];
-          filter.mType = QgsWmsParametersFilter::SQL;
-          filters.insert( splits[0], filter );
+          const QString layer = f.section( ':', 0, 0 );
+          const QString filter = f.section( ':', 1 );
+          QgsWmsParametersFilter parametersFilter;
+          parametersFilter.mFilter = filter;
+          parametersFilter.mType = QgsWmsParametersFilter::SQL;
+          filters.insert( layer, parametersFilter );
         }
         else
         {
diff --git a/src/ui/effects/widget_blur.ui b/src/ui/effects/widget_blur.ui
index f779027e0f..6ab52e4cde 100644
--- a/src/ui/effects/widget_blur.ui
+++ b/src/ui/effects/widget_blur.ui
@@ -31,7 +31,7 @@
         <property name="bottomMargin">
          <number>0</number>
         </property>
-        <item row="0" column="1">
+        <item row="0" column="1" colspan="2">
          <widget class="QComboBox" name="mBlurTypeCombo"/>
         </item>
         <item row="2" column="0">
@@ -48,19 +48,41 @@
           </property>
          </widget>
         </item>
-        <item row="3" column="1">
+        <item row="3" column="1" colspan="2">
          <widget class="QgsBlendModeComboBox" name="mBlendCmbBx"/>
         </item>
         <item row="1" column="1">
-         <widget class="QgsSpinBox" name="mBlurStrengthSpnBx">
+         <widget class="QgsDoubleSpinBox" name="mBlurStrengthSpnBx">
+          <property name="decimals">
+           <number>4</number>
+          </property>
+          <property name="minimum">
+           <double>0.000000000000000</double>
+          </property>
           <property name="maximum">
-           <number>16</number>
+           <double>9999999.000000000000000</double>
+          </property>
+          <property name="singleStep">
+           <double>0.200000000000000</double>
           </property>
           <property name="showClearButton" stdset="0">
            <bool>false</bool>
           </property>
          </widget>
         </item>
+        <item row="1" column="2">
+         <widget class="QgsUnitSelectionWidget" name="mBlurUnitWidget" native="true">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::StrongFocus</enum>
+          </property>
+         </widget>
+        </item>
         <item row="0" column="0">
          <widget class="QLabel" name="label">
           <property name="text">
@@ -75,7 +97,7 @@
           </property>
          </widget>
         </item>
-        <item row="4" column="1">
+        <item row="4" column="1" colspan="2">
          <widget class="QgsEffectDrawModeComboBox" name="mDrawModeComboBox"/>
         </item>
         <item row="4" column="0">
@@ -85,7 +107,7 @@
           </property>
          </widget>
         </item>
-        <item row="2" column="1">
+        <item row="2" column="1" colspan="2">
          <widget class="QgsOpacityWidget" name="mOpacityWidget" native="true">
           <property name="focusPolicy">
            <enum>Qt::StrongFocus</enum>
@@ -114,9 +136,9 @@
  </widget>
  <customwidgets>
   <customwidget>
-   <class>QgsSpinBox</class>
-   <extends>QSpinBox</extends>
-   <header>qgsspinbox.h</header>
+   <class>QgsDoubleSpinBox</class>
+   <extends>QDoubleSpinBox</extends>
+   <header>qgsdoublespinbox.h</header>
   </customwidget>
   <customwidget>
    <class>QgsBlendModeComboBox</class>
diff --git a/src/ui/effects/widget_glow.ui b/src/ui/effects/widget_glow.ui
index e79dab3edc..fb33d93fdb 100644
--- a/src/ui/effects/widget_glow.ui
+++ b/src/ui/effects/widget_glow.ui
@@ -84,6 +84,9 @@
           <property name="maximum">
            <double>9999999.000000000000000</double>
           </property>
+          <property name="singleStep">
+           <double>0.200000000000000</double>
+          </property>
           <property name="showClearButton" stdset="0">
            <bool>false</bool>
           </property>
@@ -102,16 +105,38 @@
           </property>
          </widget>
         </item>
-        <item row="1" column="1" colspan="2">
-         <widget class="QgsSpinBox" name="mBlurRadiusSpnBx">
+        <item row="1" column="1">
+         <widget class="QgsDoubleSpinBox" name="mBlurRadiusSpnBx">
+          <property name="decimals">
+           <number>4</number>
+          </property>
+          <property name="minimum">
+           <double>0.000000000000000</double>
+          </property>
           <property name="maximum">
-           <number>16</number>
+           <double>9999999.000000000000000</double>
+          </property>
+          <property name="singleStep">
+           <double>0.200000000000000</double>
           </property>
           <property name="showClearButton" stdset="0">
            <bool>false</bool>
           </property>
          </widget>
         </item>
+        <item row="1" column="2">
+         <widget class="QgsUnitSelectionWidget" name="mBlurUnitWidget" native="true">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::StrongFocus</enum>
+          </property>
+         </widget>
+        </item>
         <item row="4" column="1" colspan="2">
          <widget class="QgsColorRampButton" name="btnColorRamp">
           <property name="sizePolicy">
diff --git a/src/ui/effects/widget_shadoweffect.ui b/src/ui/effects/widget_shadoweffect.ui
index 1beb93afc3..0bff4c8a14 100644
--- a/src/ui/effects/widget_shadoweffect.ui
+++ b/src/ui/effects/widget_shadoweffect.ui
@@ -42,6 +42,9 @@
           <property name="maximum">
            <double>9999999.000000000000000</double>
           </property>
+          <property name="singleStep">
+           <double>0.200000000000000</double>
+          </property>
           <property name="showClearButton" stdset="0">
            <bool>false</bool>
           </property>
@@ -107,16 +110,38 @@
         <item row="5" column="1" colspan="2">
          <widget class="QgsBlendModeComboBox" name="mShadowBlendCmbBx"/>
         </item>
-        <item row="2" column="1" colspan="2">
-         <widget class="QgsSpinBox" name="mShadowRadiuSpnBx">
+        <item row="2" column="1">
+         <widget class="QgsDoubleSpinBox" name="mShadowRadiuSpnBx">
+          <property name="decimals">
+           <number>4</number>
+          </property>
+          <property name="minimum">
+           <double>0.000000000000000</double>
+          </property>
           <property name="maximum">
-           <number>16</number>
+           <double>9999999.000000000000000</double>
+          </property>
+          <property name="singleStep">
+           <double>0.200000000000000</double>
           </property>
           <property name="showClearButton" stdset="0">
            <bool>false</bool>
           </property>
          </widget>
         </item>
+        <item row="2" column="2">
+         <widget class="QgsUnitSelectionWidget" name="mBlurUnitWidget" native="true">
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::StrongFocus</enum>
+          </property>
+         </widget>
+        </item>
         <item row="0" column="1" colspan="2">
          <layout class="QHBoxLayout" name="horizontalLayout_24">
           <item>
diff --git a/src/ui/qgsfirstrundialog.ui b/src/ui/qgsfirstrundialog.ui
index 98594ee865..36f840615e 100644
--- a/src/ui/qgsfirstrundialog.ui
+++ b/src/ui/qgsfirstrundialog.ui
@@ -109,66 +109,72 @@
    <item row="1" column="0" colspan="2">
     <layout class="QVBoxLayout" name="verticalLayout">
      <item>
-      <spacer name="verticalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeType">
-        <enum>QSizePolicy::Expanding</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Ready to go?</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QRadioButton" name="mImportSettingsYes">
-       <property name="text">
-        <string>Import settings from QGIS 2.</string>
-       </property>
-       <property name="checked">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QRadioButton" name="mImportSettingsNo">
-       <property name="text">
-        <string>I want a clean start. Don't import my QGIS 2 settings.</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QLabel" name="label_4">
-       <property name="text">
-        <string>Settings will be imported into the default profile and you will only see this screen once.</string>
-       </property>
-       <property name="wordWrap">
-        <bool>true</bool>
-       </property>
+      <widget class="QWidget" name="mMigrationWidget" native="true">
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <spacer name="verticalSpacer_2">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeType">
+           <enum>QSizePolicy::Expanding</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>20</width>
+            <height>45</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QLabel" name="label">
+          <property name="text">
+           <string>Ready to go?</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="mImportSettingsYes">
+          <property name="text">
+           <string>Import settings from QGIS 2.</string>
+          </property>
+          <property name="checked">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="mImportSettingsNo">
+          <property name="text">
+           <string>I want a clean start. Don't import my QGIS 2 settings.</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="verticalSpacer">
+          <property name="orientation">
+           <enum>Qt::Vertical</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>20</width>
+            <height>40</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_4">
+          <property name="text">
+           <string>Settings will be imported into the default profile and you will only see this screen once.</string>
+          </property>
+          <property name="wordWrap">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
       </widget>
      </item>
     </layout>
diff --git a/src/ui/qgslabelingwidget.ui b/src/ui/qgslabelingwidget.ui
index 742ad2426e..6f84835434 100644
--- a/src/ui/qgslabelingwidget.ui
+++ b/src/ui/qgslabelingwidget.ui
@@ -66,7 +66,7 @@
       </widget>
      </item>
      <item>
-      <widget class="QPushButton" name="mEngineSettingsButton">
+      <widget class="QToolButton" name="mEngineSettingsButton">
        <property name="enabled">
         <bool>true</bool>
        </property>
@@ -77,12 +77,6 @@
         <iconset resource="../../images/images.qrc">
          <normaloff>:/images/themes/default/mIconAutoPlacementSettings.svg</normaloff>:/images/themes/default/mIconAutoPlacementSettings.svg</iconset>
        </property>
-       <property name="iconSize">
-        <size>
-         <width>24</width>
-         <height>16</height>
-        </size>
-       </property>
       </widget>
      </item>
     </layout>
diff --git a/src/ui/qgsoptionsbase.ui b/src/ui/qgsoptionsbase.ui
index b15b2b6342..5caf21da11 100644
--- a/src/ui/qgsoptionsbase.ui
+++ b/src/ui/qgsoptionsbase.ui
@@ -1626,14 +1626,14 @@
                </rect>
               </property>
               <layout class="QGridLayout" name="gridLayout_15">
-               <item row="4" column="0">
-                <widget class="QgsCollapsibleGroupBox" name="grpProjectionBehavior">
+               <item row="2" column="0">
+                <widget class="QgsCollapsibleGroupBox" name="grpProjectProjection">
                  <property name="title">
-                  <string>CRS for new layers</string>
+                  <string>CRS for New Projects</string>
                  </property>
-                 <layout class="QGridLayout" name="gridLayout_14" columnstretch="0,1">
+                 <layout class="QGridLayout" name="gridLayout_27" columnstretch="0,1">
                   <item row="0" column="0" colspan="2">
-                   <widget class="QLabel" name="label_8">
+                   <widget class="QLabel" name="label_42">
                     <property name="sizePolicy">
                      <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
                       <horstretch>0</horstretch>
@@ -1641,51 +1641,47 @@
                      </sizepolicy>
                     </property>
                     <property name="text">
-                     <string>When a new layer is created, or when a layer is loaded that has no CRS</string>
+                     <string>When a new project is created</string>
                     </property>
                     <property name="wordWrap">
                      <bool>true</bool>
                     </property>
                    </widget>
                   </item>
-                  <item row="1" column="0">
-                   <widget class="QRadioButton" name="radPromptForProjection">
-                    <property name="text">
-                     <string>Pro&amp;mpt for CRS</string>
+                  <item row="2" column="1">
+                   <widget class="QgsProjectionSelectionWidget" name="leProjectGlobalCrs" native="true">
+                    <property name="minimumSize">
+                     <size>
+                      <width>0</width>
+                      <height>5</height>
+                     </size>
                     </property>
-                   </widget>
-                  </item>
-                  <item row="2" column="0">
-                   <widget class="QRadioButton" name="radUseProjectProjection">
-                    <property name="text">
-                     <string>Use pro&amp;ject CRS</string>
+                    <property name="focusPolicy">
+                     <enum>Qt::StrongFocus</enum>
                     </property>
                    </widget>
                   </item>
-                  <item row="3" column="0">
-                   <widget class="QRadioButton" name="radUseGlobalProjection">
+                  <item row="2" column="0">
+                   <widget class="QRadioButton" name="radProjectUseDefaultCrs">
                     <property name="text">
                      <string>&amp;Use a default CRS</string>
                     </property>
                    </widget>
                   </item>
-                  <item row="3" column="1">
-                   <widget class="QgsProjectionSelectionWidget" name="leLayerGlobalCrs" native="true">
-                    <property name="enabled">
-                     <bool>false</bool>
-                    </property>
-                    <property name="focusPolicy">
-                     <enum>Qt::StrongFocus</enum>
+                  <item row="1" column="0" colspan="2">
+                   <widget class="QRadioButton" name="radProjectUseCrsOfFirstLayer">
+                    <property name="text">
+                     <string>Use CRS from first layer added</string>
                     </property>
                    </widget>
                   </item>
                  </layout>
                 </widget>
                </item>
-               <item row="5" column="0">
+               <item row="4" column="0">
                 <widget class="QgsCollapsibleGroupBox" name="mDefaultDatumTransformGroupBox">
                  <property name="title">
-                  <string>Default datum transformations</string>
+                  <string>Default Datum Transformations</string>
                  </property>
                  <layout class="QGridLayout" name="gridLayout_10">
                   <item row="2" column="0">
@@ -1715,7 +1711,7 @@
                  </layout>
                 </widget>
                </item>
-               <item row="6" column="0">
+               <item row="5" column="0">
                 <spacer name="verticalSpacer">
                  <property name="orientation">
                   <enum>Qt::Vertical</enum>
@@ -1728,32 +1724,61 @@
                  </property>
                 </spacer>
                </item>
-               <item row="2" column="0">
-                <layout class="QHBoxLayout" name="horizontalLayout_3" stretch="0,1">
-                 <property name="topMargin">
-                  <number>3</number>
+               <item row="3" column="0">
+                <widget class="QgsCollapsibleGroupBox" name="grpProjectionBehavior">
+                 <property name="title">
+                  <string>CRS for New Layers</string>
                  </property>
-                 <item>
-                  <widget class="QLabel" name="label_16">
-                   <property name="text">
-                    <string>Default CRS for new projects</string>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QgsProjectionSelectionWidget" name="leProjectGlobalCrs" native="true">
-                   <property name="minimumSize">
-                    <size>
-                     <width>0</width>
-                     <height>5</height>
-                    </size>
-                   </property>
-                   <property name="focusPolicy">
-                    <enum>Qt::StrongFocus</enum>
-                   </property>
-                  </widget>
-                 </item>
-                </layout>
+                 <layout class="QGridLayout" name="gridLayout_14" columnstretch="0,1">
+                  <item row="0" column="0" colspan="2">
+                   <widget class="QLabel" name="label_8">
+                    <property name="sizePolicy">
+                     <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+                      <horstretch>0</horstretch>
+                      <verstretch>0</verstretch>
+                     </sizepolicy>
+                    </property>
+                    <property name="text">
+                     <string>When a new layer is created, or when a layer is loaded that has no CRS</string>
+                    </property>
+                    <property name="wordWrap">
+                     <bool>true</bool>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="1" column="0">
+                   <widget class="QRadioButton" name="radPromptForProjection">
+                    <property name="text">
+                     <string>Pro&amp;mpt for CRS</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="2" column="0">
+                   <widget class="QRadioButton" name="radUseProjectProjection">
+                    <property name="text">
+                     <string>Use pro&amp;ject CRS</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="3" column="0">
+                   <widget class="QRadioButton" name="radUseGlobalProjection">
+                    <property name="text">
+                     <string>&amp;Use a default CRS</string>
+                    </property>
+                   </widget>
+                  </item>
+                  <item row="3" column="1">
+                   <widget class="QgsProjectionSelectionWidget" name="leLayerGlobalCrs" native="true">
+                    <property name="enabled">
+                     <bool>false</bool>
+                    </property>
+                    <property name="focusPolicy">
+                     <enum>Qt::StrongFocus</enum>
+                    </property>
+                   </widget>
+                  </item>
+                 </layout>
+                </widget>
                </item>
               </layout>
              </widget>
@@ -5581,6 +5606,8 @@ p, li { white-space: pre-wrap; }
   <tabstop>mCurrentVariablesTable</tabstop>
   <tabstop>mCurrentVariablesQGISChxBx</tabstop>
   <tabstop>mOptionsScrollArea_08</tabstop>
+  <tabstop>radProjectUseCrsOfFirstLayer</tabstop>
+  <tabstop>radProjectUseDefaultCrs</tabstop>
   <tabstop>leProjectGlobalCrs</tabstop>
   <tabstop>radPromptForProjection</tabstop>
   <tabstop>radUseProjectProjection</tabstop>
diff --git a/src/ui/qgsrasterlayersaveasdialogbase.ui b/src/ui/qgsrasterlayersaveasdialogbase.ui
index 2a8eef2370..9d6615ba4e 100644
--- a/src/ui/qgsrasterlayersaveasdialogbase.ui
+++ b/src/ui/qgsrasterlayersaveasdialogbase.ui
@@ -185,8 +185,8 @@ datasets with maximum width and height specified below.</string>
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>543</width>
-        <height>675</height>
+        <width>541</width>
+        <height>597</height>
        </rect>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_5">
@@ -754,38 +754,5 @@ datasets with maximum width and height specified below.</string>
  <resources>
   <include location="../../images/images.qrc"/>
  </resources>
- <connections>
-  <connection>
-   <sender>mButtonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>QgsRasterLayerSaveAsDialogBase</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>254</x>
-     <y>575</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>mButtonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>QgsRasterLayerSaveAsDialogBase</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>322</x>
-     <y>575</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
+ <connections/>
 </ui>
diff --git a/src/ui/qgstextformatwidgetbase.ui b/src/ui/qgstextformatwidgetbase.ui
index 1366f5dd27..6a30ad7ddc 100644
--- a/src/ui/qgstextformatwidgetbase.ui
+++ b/src/ui/qgstextformatwidgetbase.ui
@@ -4066,6 +4066,13 @@ font-style: italic;</string>
                              </property>
                             </widget>
                            </item>
+                           <item>
+                            <widget class="QgsPropertyOverrideButton" name="mLinePlacementFlagsDDBtn">
+                             <property name="text">
+                              <string>…</string>
+                             </property>
+                            </widget>
+                           </item>
                           </layout>
                          </item>
                          <item row="1" column="1">
@@ -4196,6 +4203,9 @@ font-style: italic;</string>
                            <property name="decimals">
                             <number>4</number>
                            </property>
+                           <property name="minimum">
+                            <double>-999999999.000000000000000</double>
+                           </property>
                            <property name="maximum">
                             <double>999999999.000000000000000</double>
                            </property>
@@ -6488,6 +6498,7 @@ font-style: italic;</string>
   <tabstop>chkLineOn</tabstop>
   <tabstop>chkLineBelow</tabstop>
   <tabstop>chkLineOrientationDependent</tabstop>
+  <tabstop>mLinePlacementFlagsDDBtn</tabstop>
   <tabstop>mCentroidRadioVisible</tabstop>
   <tabstop>mCentroidRadioWhole</tabstop>
   <tabstop>mCentroidDDBtn</tabstop>
diff --git a/tests/README.md b/tests/README.md
index 3fbdc740ec..011f786c6d 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -29,7 +29,6 @@ You could re-run the failing test with:
 The parameter `-V` enables verbose mode and `-R` takes a regular expression as
 parameter and will only run matching tests.
 
-
 For python tests, you can run a specific test inside a unit file
 with something like this:
 
@@ -39,6 +38,13 @@ with something like this:
    TestQgsVectorLayer.testOverwriteLayer
 ```
 
+If you get `Could not connect to any X display` errors it means that your build
+machine does not have an X server.  In that case you need to run the test under
+`xvfb-run`.  For example:
+
+```
+    xvfb-run --server-args=-screen\ 10\ 1024x768x24 ctest -V -R PyQgsServerWMSGetMap
+```
 
 # Advanced configuration
 
diff --git a/tests/code_layout/acceptable_missing_doc.py b/tests/code_layout/acceptable_missing_doc.py
index 36037a45d3..e872fd21b9 100644
--- a/tests/code_layout/acceptable_missing_doc.py
+++ b/tests/code_layout/acceptable_missing_doc.py
@@ -21,7 +21,7 @@ __author__ = 'Stéphane Brunner'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Stéphane Brunner'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # -*- coding: utf-8 -*-
 """
@@ -31,7 +31,7 @@ __author__ = 'Stéphane Brunner'
 __date__ = '18/03/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 ACCEPTABLE_MISSING_DOCS = {
     "CharacterWidget": ['updateFontMerging(bool enable)'],
diff --git a/tests/code_layout/test_doxygen_layout.sh b/tests/code_layout/test_doxygen_layout.sh
index a0b580d7c4..f2724e06ad 100755
--- a/tests/code_layout/test_doxygen_layout.sh
+++ b/tests/code_layout/test_doxygen_layout.sh
@@ -3,14 +3,14 @@
 
 # check that returns are placed before note and since
 output=$(unbuffer ag --noaffinity --file-search-regex '\.h$' --multiline '\\(note|since)[^\n]+(\n\s*\* [^\n]+)*\n\s*\* \\return' ${TRAVIS_BUILD_DIR} | tee /dev/stderr)
-if [[ ! -z $output ]]; then
+if [[ -n $output ]]; then
   echo -e "\n\x1B[31m*** Docstring computation: \\\return(s) should be placed before \\\note and \\since\x1B[0m"
   exit 1
 fi
 
 # check that \since and \deprecated are placed at the end of the command block
 output=$(unbuffer  ag --noaffinity --file-search-regex '\.h$' --multiline '(\\(deprecated|since)[^\n]+\n)+\s*\*[^\/](?!\s*\\(deprecated|since))' ${TRAVIS_BUILD_DIR} | tee /dev/stderr)
-if [[ ! -z $output ]]; then
+if [[ -n $output ]]; then
   echo -e "\n\x1B[31m*** Docstring computation: \\\deprecated and \\\since should be placed at the end of command blocks\x1B[0m"
   echo -e "To fix it, you may want to run (multiple times) at the top level directory:"
   echo 'sed -i -r '"'"'$!N;s/^(\s*\*\s+\\(deprecated|since)[^\n]+)\n(\s*\*([^\/].*|$))/\3\n\1/;P;D'"'"' $(ag -c --noaffinity --file-search-regex '"'"'\.h$'"'"' --multiline '"'"'(\\(deprecated|since)[^\n]+\n)+\s*\*[^\/]'"'"' . | cut -d: -f1)'
@@ -21,7 +21,7 @@ fi
 
 # code snippets command
 output=$(unbuffer ag --noaffinity --file-search-regex '\.h$' --multiline '~~~\{\.\w+\}' ${TRAVIS_BUILD_DIR} | tee /dev/stderr)
-if [[ ! -z $output ]]; then
+if [[ -n $output ]]; then
   echo -e "\n\x1B[31m*** Docstring computation: code snippets should use \\\code{.xx} rather than ~~~{.xx} \x1B[0m"
   exit 1
 fi
diff --git a/tests/code_layout/test_qgsdoccoverage.py b/tests/code_layout/test_qgsdoccoverage.py
index 0d560f8c7c..faae015692 100644
--- a/tests/code_layout/test_qgsdoccoverage.py
+++ b/tests/code_layout/test_qgsdoccoverage.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '01/02/2015'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import sys
diff --git a/tests/code_layout/test_qgssipcoverage.py b/tests/code_layout/test_qgssipcoverage.py
index 116b277bc6..533478c792 100644
--- a/tests/code_layout/test_qgssipcoverage.py
+++ b/tests/code_layout/test_qgssipcoverage.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '15/10/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.testing import unittest
diff --git a/tests/src/analysis/testqgsprocessing.cpp b/tests/src/analysis/testqgsprocessing.cpp
index 1b4c7e09c7..205137ab73 100644
--- a/tests/src/analysis/testqgsprocessing.cpp
+++ b/tests/src/analysis/testqgsprocessing.cpp
@@ -1652,14 +1652,14 @@ void TestQgsProcessing::createFeatureSink()
   // no extension, should default to shp
   destination = QDir::tempPath() + "/create_feature_sink2";
   prevDest = QDir::tempPath() + "/create_feature_sink2.gpkg";
-  sink.reset( QgsProcessingUtils::createFeatureSink( destination, context, fields, QgsWkbTypes::Point25D, QgsCoordinateReferenceSystem::fromEpsgId( 3111 ) ) );
+  sink.reset( QgsProcessingUtils::createFeatureSink( destination, context, fields, QgsWkbTypes::PointZ, QgsCoordinateReferenceSystem::fromEpsgId( 3111 ) ) );
   QVERIFY( sink.get() );
   f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "PointZ(1 2 3)" ) ) );
   QVERIFY( sink->addFeature( f ) );
   QCOMPARE( destination, prevDest );
   sink.reset( nullptr );
   layer = qobject_cast< QgsVectorLayer *>( QgsProcessingUtils::mapLayerFromString( destination, context, true ) );
-  QCOMPARE( layer->wkbType(), QgsWkbTypes::Point25D );
+  QCOMPARE( layer->wkbType(), QgsWkbTypes::PointZ );
   QCOMPARE( layer->crs().authid(), QStringLiteral( "EPSG:3111" ) );
   QCOMPARE( layer->fields().size(), 2 );
   QCOMPARE( layer->fields().at( 0 ).name(), QStringLiteral( "fid" ) );
diff --git a/tests/src/analysis/testqgsrastercalculator.cpp b/tests/src/analysis/testqgsrastercalculator.cpp
index af48f6cc6a..b5ee7ec60e 100644
--- a/tests/src/analysis/testqgsrastercalculator.cpp
+++ b/tests/src/analysis/testqgsrastercalculator.cpp
@@ -552,6 +552,20 @@ void TestQgsRasterCalculator::findNodes()
   QCOMPARE( _test( QStringLiteral( "2 + 3" ), QgsRasterCalcNode::Type::tNumber ).length(), 2 );
   QCOMPARE( _test( QStringLiteral( "2 + 3" ), QgsRasterCalcNode::Type::tOperator ).length(), 1 );
 
+  // Test parser with valid and invalid expressions
+  QString errorString;
+  const QgsRasterCalcNode *node { QgsRasterCalcNode::parseRasterCalcString( QString( ), errorString ) };
+  QVERIFY( ! node );
+  QVERIFY( ! errorString.isEmpty() );
+  errorString = QString();
+  node = QgsRasterCalcNode::parseRasterCalcString( QStringLiteral( "log10(2)" ), errorString );
+  QVERIFY( node );
+  QVERIFY( errorString.isEmpty() );
+  errorString = QString();
+  node = QgsRasterCalcNode::parseRasterCalcString( QStringLiteral( "not_a_function(2)" ), errorString );
+  QVERIFY( ! node );
+  QVERIFY( ! errorString.isEmpty() );
+
 }
 
 void TestQgsRasterCalculator::errors( )
diff --git a/tests/src/app/testqgsmaptoolreshape.cpp b/tests/src/app/testqgsmaptoolreshape.cpp
index 21a266a4fb..05f944ef2c 100644
--- a/tests/src/app/testqgsmaptoolreshape.cpp
+++ b/tests/src/app/testqgsmaptoolreshape.cpp
@@ -14,61 +14,191 @@
  ***************************************************************************/
 
 #include "qgstest.h"
-#include "qgsapplication.h"
+
+#include "qgisapp.h"
+#include "qgsadvanceddigitizingdockwidget.h"
+#include "qgsgeometry.h"
 #include "qgsmapcanvas.h"
-#include "qgsvectorlayer.h"
-#include "qgslinestring.h"
+#include "qgsmapcanvassnappingutils.h"
+#include "qgssnappingconfig.h"
+#include "qgssnappingutils.h"
 #include "qgsmaptoolreshape.h"
-#include "qgisapp.h"
+#include "qgsproject.h"
+#include "qgssettings.h"
+#include "qgsvectorlayer.h"
+#include "qgsmapmouseevent.h"
+#include "testqgsmaptoolutils.h"
+
 
-class TestQgsMapToolReshape : public QObject
+/**
+ * \ingroup UnitTests
+ * This is a unit test for the vertex tool
+ */
+class TestQgsMapToolReshape: public QObject
 {
     Q_OBJECT
   public:
-    TestQgsMapToolReshape() = default;
+    TestQgsMapToolReshape();
 
   private slots:
-    void initTestCase(); // will be called before the first testfunction is executed.
-    void cleanupTestCase(); // will be called after the last testfunction was executed.
-    void init(); // will be called before each testfunction is executed.
-    void cleanup(); // will be called after every testfunction.
+    void initTestCase();// will be called before the first testfunction is executed.
+    void cleanupTestCase();// will be called after the last testfunction was executed.
 
+    void testReshapeZ();
     void reshapeWithBindingLine();
 
   private:
     QgisApp *mQgisApp = nullptr;
+    QgsMapCanvas *mCanvas = nullptr;
+    QgsMapToolReshape *mCaptureTool = nullptr;
+    QgsVectorLayer *mLayerLineZ = nullptr;
+    QgsVectorLayer *mLayerPointZ = nullptr;
+    QgsVectorLayer *mLayerPolygonZ = nullptr;
 };
 
+TestQgsMapToolReshape::TestQgsMapToolReshape() = default;
+
+
+//runs before all tests
 void TestQgsMapToolReshape::initTestCase()
 {
+  qDebug() << "TestMapToolCapture::initTestCase()";
+  // init QGIS's paths - true means that all path will be inited from prefix
   QgsApplication::init();
   QgsApplication::initQgis();
 
-  // Set up the QgsSettings environment
+  // Set up the QSettings environment
   QCoreApplication::setOrganizationName( QStringLiteral( "QGIS" ) );
   QCoreApplication::setOrganizationDomain( QStringLiteral( "qgis.org" ) );
   QCoreApplication::setApplicationName( QStringLiteral( "QGIS-TEST" ) );
 
-  QgsApplication::showSettings();
+  mQgisApp = new QgisApp();
+
+  mCanvas = new QgsMapCanvas();
 
-  // enforce C locale because the tests expect it
-  // (decimal separators / thousand separators)
-  QLocale::setDefault( QLocale::c() );
+  mCanvas->setDestinationCrs( QgsCoordinateReferenceSystem( QStringLiteral( "EPSG:3946" ) ) );
 
-  mQgisApp = new QgisApp();
+  mCanvas->setFrameStyle( QFrame::NoFrame );
+  mCanvas->resize( 512, 512 );
+  mCanvas->setExtent( QgsRectangle( 0, 0, 8, 8 ) );
+  mCanvas->show(); // to make the canvas resize
+  mCanvas->hide();
+
+  // make testing layers
+  mLayerLineZ = new QgsVectorLayer( QStringLiteral( "LineStringZ?crs=EPSG:3946" ), QStringLiteral( "layer line Z" ), QStringLiteral( "memory" ) );
+  QVERIFY( mLayerLineZ->isValid() );
+  QgsProject::instance()->addMapLayers( QList<QgsMapLayer *>() << mLayerLineZ );
+
+  mLayerPointZ = new QgsVectorLayer( QStringLiteral( "PointZ?crs=EPSG:3946" ), QStringLiteral( "point Z" ), QStringLiteral( "memory" ) );
+  QVERIFY( mLayerPointZ->isValid() );
+  QgsProject::instance()->addMapLayers( QList<QgsMapLayer *>() << mLayerPointZ );
+
+  mLayerPolygonZ = new QgsVectorLayer( QStringLiteral( "PolygonZ?crs=EPSG:3946" ), QStringLiteral( "polygon Z" ), QStringLiteral( "memory" ) );
+  QVERIFY( mLayerPolygonZ->isValid() );
+  QgsProject::instance()->addMapLayers( QList<QgsMapLayer *>() << mLayerPolygonZ );
+
+  mLayerLineZ->startEditing();
+  QString wkt1 = "LineStringZ (0 0 0, 1 1 0, 1 2 0)";
+  QString wkt2 = "LineStringZ (2 1 5, 3 3 5)";
+  QgsFeature f1;
+  f1.setGeometry( QgsGeometry::fromWkt( wkt1 ) );
+  QgsFeature f2;
+  f2.setGeometry( QgsGeometry::fromWkt( wkt2 ) );
+
+  QgsFeatureList flist;
+  flist << f1 << f2;
+  mLayerLineZ->dataProvider()->addFeatures( flist );
+  QCOMPARE( mLayerLineZ->featureCount(), ( long )2 );
+  QCOMPARE( mLayerLineZ->getFeature( 1 ).geometry().asWkt(), wkt1 );
+  QCOMPARE( mLayerLineZ->getFeature( 2 ).geometry().asWkt(), wkt2 );
+
+  mLayerPointZ->startEditing();
+  QString wkt3 = "PointZ (5 5 5)";
+  QgsFeature f3;
+  f3.setGeometry( QgsGeometry::fromWkt( wkt3 ) );
+  QString wkt4 = "PointZ (6 6 6)";
+  QgsFeature f4;
+  f4.setGeometry( QgsGeometry::fromWkt( wkt4 ) );
+
+  QgsFeatureList flistPoint;
+  flistPoint << f3 << f4;
+  mLayerPointZ->dataProvider()->addFeatures( flistPoint );
+  QCOMPARE( mLayerPointZ->featureCount(), ( long )2 );
+  QCOMPARE( mLayerPointZ->getFeature( 1 ).geometry().asWkt(), wkt3 );
+  QCOMPARE( mLayerPointZ->getFeature( 2 ).geometry().asWkt(), wkt4 );
+
+  mLayerPolygonZ->startEditing();
+  QString wkt5 = "PolygonZ ((7 5 4, 3 2 1, 0 1 2, 7 5 4))";
+  QgsFeature f5;
+  f5.setGeometry( QgsGeometry::fromWkt( wkt5 ) );
+  QgsFeatureList flistPolygon;
+  flistPolygon << f5;
+  mLayerPolygonZ->dataProvider()->addFeatures( flistPolygon );
+  QCOMPARE( mLayerPolygonZ->featureCount(), ( long )1 );
+  QCOMPARE( mLayerPolygonZ->getFeature( 1 ).geometry().asWkt(), wkt5 );
+
+  QgsSnappingConfig cfg = mCanvas->snappingUtils()->config();
+  cfg.setMode( QgsSnappingConfig::AllLayers );
+  cfg.setTolerance( 100 );
+  cfg.setType( QgsSnappingConfig::VertexAndSegment );
+  cfg.setEnabled( true );
+  mCanvas->snappingUtils()->setConfig( cfg );
+
+  mCanvas->setLayers( QList<QgsMapLayer *>() << mLayerLineZ << mLayerPointZ << mLayerPolygonZ );
+  mCanvas->setCurrentLayer( mLayerLineZ );
+
+  // create the tool
+  mCaptureTool = new QgsMapToolReshape( mCanvas );
+  mCanvas->setMapTool( mCaptureTool );
+
+  QCOMPARE( mCanvas->mapSettings().outputSize(), QSize( 512, 512 ) );
+  QCOMPARE( mCanvas->mapSettings().visibleExtent(), QgsRectangle( 0, 0, 8, 8 ) );
 }
 
+//runs after all tests
 void TestQgsMapToolReshape::cleanupTestCase()
 {
+  delete mCaptureTool;
+  delete mCanvas;
   QgsApplication::exitQgis();
 }
 
-void TestQgsMapToolReshape::init()
+void TestQgsMapToolReshape::testReshapeZ()
 {
-}
+  TestQgsMapToolAdvancedDigitizingUtils utils( mCaptureTool );
+
+  // test with default Z value = 333
+  QgsSettings().setValue( QStringLiteral( "/qgis/digitizing/default_z_value" ), 333 );
+
+  QSet<QgsFeatureId> oldFids = utils.existingFeatureIds();
+
+  // snap on a linestringz layer
+  utils.mouseClick( 1, 2, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 2, 1, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 2, 1, Qt::RightButton );
+
+  QString wkt = "LineStringZ (0 0 0, 1 1 0, 1 2 0, 2 1 5)";
+  QCOMPARE( mLayerLineZ->getFeature( 1 ).geometry().asWkt(), wkt );
+
+  // snap on a pointz layer
+  utils.mouseClick( 2, 1, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 5, 5, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 6, 6, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 6, 6, Qt::RightButton );
+
+  QString wkt2 = "LineStringZ (0 0 0, 1 1 0, 1 2 0, 2 1 5, 5 5 5, 6 6 6)";
+  QCOMPARE( mLayerLineZ->getFeature( 1 ).geometry().asWkt(), wkt2 );
+
+  // snap on a polygonz layer
+  utils.mouseClick( 6, 6, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 7, 5, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 3, 2, Qt::LeftButton, Qt::KeyboardModifiers(), true );
+  utils.mouseClick( 3, 2, Qt::RightButton );
+
+  QString wkt3 = "LineStringZ (0 0 0, 1 1 0, 1 2 0, 2 1 5, 5 5 5, 6 6 6, 7 5 4, 3 2 1)";
+  QCOMPARE( mLayerLineZ->getFeature( 1 ).geometry().asWkt(), wkt3 );
+  mLayerLineZ->undoStack()->undo();
 
-void TestQgsMapToolReshape::cleanup()
-{
 }
 
 void TestQgsMapToolReshape::reshapeWithBindingLine()
@@ -139,5 +269,6 @@ void TestQgsMapToolReshape::reshapeWithBindingLine()
   vl->rollBack();
 }
 
+
 QGSTEST_MAIN( TestQgsMapToolReshape )
 #include "testqgsmaptoolreshape.moc"
diff --git a/tests/src/core/CMakeLists.txt b/tests/src/core/CMakeLists.txt
index d8855ef7ac..5d4e330d29 100644
--- a/tests/src/core/CMakeLists.txt
+++ b/tests/src/core/CMakeLists.txt
@@ -16,6 +16,7 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_SOURCE_DIR}/src/core/effects
   ${CMAKE_SOURCE_DIR}/src/core/layertree
   ${CMAKE_SOURCE_DIR}/src/core/metadata
+  ${CMAKE_SOURCE_DIR}/src/core/pal
   ${CMAKE_SOURCE_DIR}/src/core/processing
   ${CMAKE_SOURCE_DIR}/src/core/processing/models
   ${CMAKE_SOURCE_DIR}/src/core/raster
diff --git a/tests/src/core/testqgscoordinatereferencesystem.cpp b/tests/src/core/testqgscoordinatereferencesystem.cpp
index 491440c536..df081d5855 100644
--- a/tests/src/core/testqgscoordinatereferencesystem.cpp
+++ b/tests/src/core/testqgscoordinatereferencesystem.cpp
@@ -354,8 +354,10 @@ QString TestQgsCoordinateReferenceSystem::testESRIWkt( int i, QgsCoordinateRefer
 
   return QString();
 }
+
 void TestQgsCoordinateReferenceSystem::createFromESRIWkt()
 {
+#if PJ_VERSION < 600 // The ESRI fix no longer has any impact on Proj >= 6, GDAL >= 3.0
   QString msg;
   QgsCoordinateReferenceSystem myCrs;
   const char *configOld = CPLGetConfigOption( "GDAL_FIX_ESRI_WKT", "" );
@@ -442,7 +444,10 @@ void TestQgsCoordinateReferenceSystem::createFromESRIWkt()
   }
 
   //  QVERIFY( bOK );
+#endif
 }
+
+
 void TestQgsCoordinateReferenceSystem::createFromSrId()
 {
   QgsCoordinateReferenceSystem myCrs;
@@ -675,11 +680,20 @@ void TestQgsCoordinateReferenceSystem::toWkt()
   QString myWkt = myCrs.toWkt();
   debugPrint( myCrs );
   //Note: this is not the same as GEOWKT as OGR strips off the TOWGS clause...
+#if PJ_VERSION < 600
   QString myStrippedWkt( "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID"
                          "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],"
                          "AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"
                          "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"
                          "[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]" );
+#else
+  QString myStrippedWkt( "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID"
+                         "[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],"
+                         "AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY"
+                         "[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY"
+                         "[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST]"
+                         ",AUTHORITY[\"EPSG\",\"4326\"]]" );
+#endif
   qDebug() << "wkt:      " << myWkt;
   qDebug() << "stripped: " << myStrippedWkt;
   QVERIFY( myWkt == myStrippedWkt );
@@ -910,12 +924,12 @@ void TestQgsCoordinateReferenceSystem::geoCcsDescription()
   crs.createFromString( QStringLiteral( "EPSG:4340" ) );
   QVERIFY( crs.isValid() );
   QCOMPARE( crs.authid(), QStringLiteral( "EPSG:4340" ) );
-  QCOMPARE( crs.description(), QStringLiteral( "Australian Antarctic (geocentric)" ) );
+  QVERIFY( crs.description().startsWith( QStringLiteral( "Australian Antarctic" ) ) );
 
   crs.createFromString( QStringLiteral( "EPSG:4348" ) );
   QVERIFY( crs.isValid() );
   QCOMPARE( crs.authid(), QStringLiteral( "EPSG:4348" ) );
-  QCOMPARE( crs.description(), QStringLiteral( "GDA94 (geocentric)" ) );
+  QVERIFY( crs.description().startsWith( QStringLiteral( "GDA94" ) ) );
 }
 QGSTEST_MAIN( TestQgsCoordinateReferenceSystem )
 #include "testqgscoordinatereferencesystem.moc"
diff --git a/tests/src/core/testqgscoordinatetransform.cpp b/tests/src/core/testqgscoordinatetransform.cpp
index 093bf0f0f9..3a14aa27d8 100644
--- a/tests/src/core/testqgscoordinatetransform.cpp
+++ b/tests/src/core/testqgscoordinatetransform.cpp
@@ -225,7 +225,7 @@ void TestQgsCoordinateTransform::scaleFactor()
   QgsCoordinateTransform ct( sourceCrs, destCrs, QgsProject::instance() );
 
   // qDebug() << QString::number(ct.scaleFactor( rect ), 'g', 17) ;
-  QVERIFY( qgsDoubleNear( ct.scaleFactor( rect ), factor ) );
+  QGSCOMPARENEAR( ct.scaleFactor( rect ), factor, 0.000001 );
 }
 
 void TestQgsCoordinateTransform::scaleFactor_data()
@@ -241,10 +241,10 @@ void TestQgsCoordinateTransform::scaleFactor_data()
       << QgsRectangle( 2550000, 1200000, 2550100, 1200100 )
       << 1.1223316038381985e-5;
   QTest::newRow( "Same map units" )
-      << QgsCoordinateReferenceSystem::fromEpsgId( 2056 )
-      << QgsCoordinateReferenceSystem::fromEpsgId( 21781 )
-      << QgsRectangle( 2550000, 1200000, 2550100, 1200100 )
-      << 1.0000000000248837;
+      << QgsCoordinateReferenceSystem::fromEpsgId( 3111 )
+      << QgsCoordinateReferenceSystem::fromEpsgId( 28355 )
+      << QgsRectangle( 2560536.7, 2331787.5, 2653161.1, 2427370.4 )
+      << 0.999632;
   QTest::newRow( "Same CRS" )
       << QgsCoordinateReferenceSystem::fromEpsgId( 2056 )
       << QgsCoordinateReferenceSystem::fromEpsgId( 2056 )
diff --git a/tests/src/core/testqgsdistancearea.cpp b/tests/src/core/testqgsdistancearea.cpp
index 0237a940d7..8f5df99492 100644
--- a/tests/src/core/testqgsdistancearea.cpp
+++ b/tests/src/core/testqgsdistancearea.cpp
@@ -356,7 +356,7 @@ void TestQgsDistanceArea::measureAreaAndUnits()
   // test converting the resultant area
   area = da.convertAreaMeasurement( area, QgsUnitTypes::AreaSquareYards );
   QgsDebugMsg( QStringLiteral( "measured %1 in sq yrds" ).arg( area ) );
-  QGSCOMPARENEAR( area, 222237.185213, 0.3 );
+  QGSCOMPARENEAR( area, 222237.185213, 1.0 );
 }
 
 void TestQgsDistanceArea::emptyPolygon()
diff --git a/tests/src/core/testqgsdxfexport.cpp b/tests/src/core/testqgsdxfexport.cpp
index b4f6b5c5a7..921931091b 100644
--- a/tests/src/core/testqgsdxfexport.cpp
+++ b/tests/src/core/testqgsdxfexport.cpp
@@ -44,6 +44,7 @@ class TestQgsDxfExport : public QObject
     void testPoints();
     void testLines();
     void testPolygons();
+    void testMultiSurface();
     void testMtext();
     void testMTextNoSymbology(); //tests if label export works if layer has vector renderer type 'no symbols'
     void testMTextEscapeSpaces();
@@ -216,6 +217,42 @@ void TestQgsDxfExport::testPolygons()
   QCOMPARE( result->wkbType(), QgsWkbTypes::LineString );
 }
 
+void TestQgsDxfExport::testMultiSurface()
+{
+  QgsDxfExport d;
+  std::unique_ptr< QgsVectorLayer > vl = qgis::make_unique< QgsVectorLayer >( QStringLiteral( "MultiSurface" ), QString(), QStringLiteral( "memory" ) );
+  QgsGeometry g = QgsGeometry::fromWkt( "MultiSurface (Polygon ((0 0, 0 1, 1 1, 0 0)))" );
+  QgsFeature f;
+  f.setGeometry( g );
+  vl->dataProvider()->addFeatures( QgsFeatureList() << f );
+  d.addLayers( QList< QgsDxfExport::DxfLayer >() << QgsDxfExport::DxfLayer( vl.get() ) );
+
+  QgsMapSettings mapSettings;
+  QSize size( 640, 480 );
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( vl->extent() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl.get() );
+  mapSettings.setOutputDpi( 96 );
+  mapSettings.setDestinationCrs( vl->crs() );
+
+  d.setMapSettings( mapSettings );
+  d.setSymbologyScale( 1000 );
+
+  QString file = getTempFileName( "multisurface_dxf" );
+  QFile dxfFile( file );
+  QCOMPARE( d.writeToFile( &dxfFile, QStringLiteral( "CP1252" ) ), 0 );
+  dxfFile.close();
+
+  // reload and compare
+  std::unique_ptr< QgsVectorLayer > result = qgis::make_unique< QgsVectorLayer >( file, "dxf" );
+  QVERIFY( result->isValid() );
+  QCOMPARE( result->featureCount(), 1L );
+  QCOMPARE( result->wkbType(), QgsWkbTypes::LineString );
+  QgsFeature f2;
+  result->getFeatures().nextFeature( f2 );
+  QCOMPARE( f2.geometry().asWkt(), QStringLiteral( "LineString (0 0, 0 1, 1 1, 0 0)" ) );
+}
+
 void TestQgsDxfExport::testMtext()
 {
   QVERIFY( testMtext( mPointLayer, QStringLiteral( "mtext_dxf" ) ) );
diff --git a/tests/src/core/testqgsgeometry.cpp b/tests/src/core/testqgsgeometry.cpp
index 9191027242..0690fd5349 100644
--- a/tests/src/core/testqgsgeometry.cpp
+++ b/tests/src/core/testqgsgeometry.cpp
@@ -13702,66 +13702,64 @@ void TestQgsGeometry::multiSurface()
 
   //as JSON
   QgsMultiSurface exportC;
-  ring.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 7, 17 ) << QgsPoint( QgsWkbTypes::Point, 3, 13 ) << QgsPoint( QgsWkbTypes::Point, 7, 17 ) ) ;
+  QgsLineString lineRing;
+  lineRing.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 7, 17 ) << QgsPoint( QgsWkbTypes::Point, 7, 13 )  << QgsPoint( QgsWkbTypes::Point, 3, 13 ) << QgsPoint( QgsWkbTypes::Point, 7, 17 ) ) ;
   part.clear();
-  part.setExteriorRing( ring.clone() );
+  part.setExteriorRing( lineRing.clone() );
   exportC.addGeometry( part.clone() );
-  ring.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 27, 37 ) << QgsPoint( QgsWkbTypes::Point, 43, 43 )  << QgsPoint( QgsWkbTypes::Point, 27, 37 ) ) ;
+  lineRing.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 27, 37 ) << QgsPoint( QgsWkbTypes::Point, 27, 43 ) << QgsPoint( QgsWkbTypes::Point, 43, 43 )  << QgsPoint( QgsWkbTypes::Point, 27, 37 ) ) ;
   part.clear();
-  part.setExteriorRing( ring.clone() );
+  part.setExteriorRing( lineRing.clone() );
   exportC.addGeometry( part.clone() );
 
   // GML document for compare
   QDomDocument doc( "gml" );
 
   // as GML2
-  QString expectedSimpleGML2( QStringLiteral( "<MultiPolygon xmlns=\"gml\"><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">7,17 7,17</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">27,37 27,37</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember></MultiPolygon>" ) );
+  QString expectedSimpleGML2( QStringLiteral( "<MultiPolygon xmlns=\"gml\"><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">7,17 7,13 3,13 7,17</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">27,37 27,43 43,43 27,37</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember></MultiPolygon>" ) );
   QString res = elemToString( exportC.asGml2( doc, 1 ) );
   QGSCOMPAREGML( res, expectedSimpleGML2 );
   QString expectedGML2empty( QStringLiteral( "<MultiPolygon xmlns=\"gml\"/>" ) );
   QGSCOMPAREGML( elemToString( QgsMultiSurface().asGml2( doc ) ), expectedGML2empty );
 
   //as GML3
-  QString expectedSimpleGML3( QStringLiteral( "<MultiSurface xmlns=\"gml\"><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><Curve xmlns=\"gml\"><segments xmlns=\"gml\"><ArcString xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">7 17 3 13 7 17</posList></ArcString></segments></Curve></exterior></Polygon></surfaceMember><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><Curve xmlns=\"gml\"><segments xmlns=\"gml\"><ArcString xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">27 37 43 43 27 37</posList></ArcString></segments></Curve></exterior></Polygon></surfaceMember></MultiSurface>" ) );
+
+  QString expectedSimpleGML3( QStringLiteral( "<MultiSurface xmlns=\"gml\"><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><LinearRing xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">7 17 7 13 3 13 7 17</posList></LinearRing></exterior></Polygon></surfaceMember><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><LinearRing xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">27 37 27 43 43 43 27 37</posList></LinearRing></exterior></Polygon></surfaceMember></MultiSurface>" ) );
   res = elemToString( exportC.asGml3( doc ) );
   QCOMPARE( res, expectedSimpleGML3 );
   QString expectedGML3empty( QStringLiteral( "<MultiSurface xmlns=\"gml\"/>" ) );
   QGSCOMPAREGML( elemToString( QgsMultiSurface().asGml3( doc ) ), expectedGML3empty );
 
   // as JSON
-  QString expectedSimpleJson( "{\"type\": \"MultiPolygon\", \"coordinates\": [[[ [7, 17], [7, 17]]], [[ [27, 37], [27, 37]]]] }" );
+  QString expectedSimpleJson( "{\"type\": \"MultiPolygon\", \"coordinates\": [[[ [7, 17], [7, 13], [3, 13], [7, 17]]], [[ [27, 37], [27, 43], [43, 43], [27, 37]]]] }" );
   res = exportC.asJson( 1 );
   QCOMPARE( res, expectedSimpleJson );
 
-  ring.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 17, 27 ) << QgsPoint( QgsWkbTypes::Point, 18, 28 )  << QgsPoint( QgsWkbTypes::Point, 17, 27 ) ) ;
-  part.addInteriorRing( ring.clone() );
+  lineRing.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 17, 27 ) << QgsPoint( QgsWkbTypes::Point, 17, 28 ) << QgsPoint( QgsWkbTypes::Point, 18, 28 )  << QgsPoint( QgsWkbTypes::Point, 17, 27 ) ) ;
+  part.addInteriorRing( lineRing.clone() );
   exportC.addGeometry( part.clone() );
 
-  QString expectedJsonWithRings( "{\"type\": \"MultiPolygon\", \"coordinates\": [[[ [7, 17], [7, 17]]], [[ [27, 37], [27, 37]]], [[ [27, 37], [27, 37]], [ [17, 27], [17, 27]]]] }" );
+  QString expectedJsonWithRings( "{\"type\": \"MultiPolygon\", \"coordinates\": [[[ [7, 17], [7, 13], [3, 13], [7, 17]]], [[ [27, 37], [27, 43], [43, 43], [27, 37]]], [[ [27, 37], [27, 43], [43, 43], [27, 37]], [ [17, 27], [17, 28], [18, 28], [17, 27]]]] }" );
   res = exportC.asJson( 1 );
   QCOMPARE( res, expectedJsonWithRings );
 
   QgsMultiSurface exportFloat;
-  ring.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 7 / 3.0, 17 / 3.0 ) << QgsPoint( QgsWkbTypes::Point, 3 / 5.0, 13 / 3.0 ) << QgsPoint( QgsWkbTypes::Point, 7 / 3.0, 17 / 3.0 ) ) ;
+  lineRing.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 0.1234, 0.1234 ) << QgsPoint( QgsWkbTypes::Point, 0.1234, 1.2344 ) << QgsPoint( QgsWkbTypes::Point, 1.2344, 1.2344 ) << QgsPoint( QgsWkbTypes::Point, 0.1234, 0.1234 ) ) ;
   part.clear();
-  part.setExteriorRing( ring.clone() );
-  exportFloat.addGeometry( part.clone() );
-  ring.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point, 27 / 3.0, 37 / 9.0 ) << QgsPoint( QgsWkbTypes::Point, 43 / 41.0, 43 / 42.0 ) << QgsPoint( QgsWkbTypes::Point, 27 / 3.0, 37 / 9.0 ) ) ;
-  part.clear();
-  part.setExteriorRing( ring.clone() );
+  part.setExteriorRing( lineRing.clone() );
   exportFloat.addGeometry( part.clone() );
 
-  QString expectedJsonPrec3( QStringLiteral( "{\"type\": \"MultiPolygon\", \"coordinates\": [[[ [2.333, 5.667], [2.333, 5.667]]], [[ [9, 4.111], [9, 4.111]]]] }" ) );
+  QString expectedJsonPrec3( QStringLiteral( "{\"type\": \"MultiPolygon\", \"coordinates\": [[[ [0.123, 0.123], [0.123, 1.234], [1.234, 1.234], [0.123, 0.123]]]] }" ) );
   res = exportFloat.asJson( 3 );
   QCOMPARE( res, expectedJsonPrec3 );
 
   // as GML2
-  QString expectedGML2prec3( QStringLiteral( "<MultiPolygon xmlns=\"gml\"><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">2.333,5.667 2.333,5.667</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">9,4.111 9,4.111</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember></MultiPolygon>" ) );
+  QString expectedGML2prec3( QStringLiteral( "<MultiPolygon xmlns=\"gml\"><polygonMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><outerBoundaryIs xmlns=\"gml\"><LinearRing xmlns=\"gml\"><coordinates xmlns=\"gml\" cs=\",\" ts=\" \">0.123,0.123 0.123,1.234 1.234,1.234 0.123,0.123</coordinates></LinearRing></outerBoundaryIs></Polygon></polygonMember></MultiPolygon>" ) );
   res = elemToString( exportFloat.asGml2( doc, 3 ) );
   QGSCOMPAREGML( res, expectedGML2prec3 );
 
   //as GML3
-  QString expectedGML3prec3( QStringLiteral( "<MultiSurface xmlns=\"gml\"><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><Curve xmlns=\"gml\"><segments xmlns=\"gml\"><ArcString xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">2.333 5.667 0.6 4.333 2.333 5.667</posList></ArcString></segments></Curve></exterior></Polygon></surfaceMember><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><Curve xmlns=\"gml\"><segments xmlns=\"gml\"><ArcString xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">9 4.111 1.049 1.024 9 4.111</posList></ArcString></segments></Curve></exterior></Polygon></surfaceMember></MultiSurface>" ) );
+  QString expectedGML3prec3( QStringLiteral( "<MultiSurface xmlns=\"gml\"><surfaceMember xmlns=\"gml\"><Polygon xmlns=\"gml\"><exterior xmlns=\"gml\"><LinearRing xmlns=\"gml\"><posList xmlns=\"gml\" srsDimension=\"2\">0.123 0.123 0.123 1.234 1.234 1.234 0.123 0.123</posList></LinearRing></exterior></Polygon></surfaceMember></MultiSurface>" ) );
   res = elemToString( exportFloat.asGml3( doc, 3 ) );
   QCOMPARE( res, expectedGML3prec3 );
 
diff --git a/tests/src/core/testqgsgeometryutils.cpp b/tests/src/core/testqgsgeometryutils.cpp
index 9890a487da..b634b7df1c 100644
--- a/tests/src/core/testqgsgeometryutils.cpp
+++ b/tests/src/core/testqgsgeometryutils.cpp
@@ -13,6 +13,8 @@
  *                                                                         *
  ***************************************************************************/
 
+#include <math.h>
+
 #include "qgstest.h"
 #include <QObject>
 #include "qgsgeometryutils.h"
@@ -70,6 +72,9 @@ class TestQgsGeometryUtils: public QObject
     void testInterpolatePointOnLineByValue();
     void testPointOnLineWithDistance();
     void interpolatePointOnArc();
+    void testSegmentizeArcHalfCircle();
+    void testSegmentizeArcHalfCircleOtherDirection();
+    void testSegmentizeArcFullCircle();
 };
 
 
@@ -1231,5 +1236,74 @@ void TestQgsGeometryUtils::interpolatePointOnArc()
   QGSCOMPARENEAR( p.y(), -2.0, 0.00001 );
 }
 
+void TestQgsGeometryUtils::testSegmentizeArcHalfCircle()
+{
+  QgsPointSequence points;
+  const double xoff = 1;
+  const double yoff = 100;
+  QgsGeometryUtils::segmentizeArc( QgsPoint( xoff + 0, yoff + 0 ),
+                                   QgsPoint( xoff + 1, yoff + 1 ),
+                                   QgsPoint( xoff + 2, yoff + 0 ),
+                                   points, 0.1,
+                                   QgsAbstractGeometry::MaximumDifference, false, false );
+  QCOMPARE( points.size(), 5 );
+  QGSCOMPARENEAR( points[0].x(), xoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[0].y(), yoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[1].x(), xoff + 1 - sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[1].y(), yoff + sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[2].x(), xoff + 1.0, 0.00001 );
+  QGSCOMPARENEAR( points[2].y(), yoff + 1.0, 0.00001 );
+  QGSCOMPARENEAR( points[3].x(), xoff + 1 + sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[3].y(), yoff + sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[4].x(), xoff + 2.0, 0.00001 );
+  QGSCOMPARENEAR( points[4].y(), yoff + 0.0, 0.00001 );
+}
+
+void TestQgsGeometryUtils::testSegmentizeArcHalfCircleOtherDirection()
+{
+  QgsPointSequence points;
+  const double xoff = 1;
+  const double yoff = 100;
+  QgsGeometryUtils::segmentizeArc( QgsPoint( xoff + 0, yoff + 0 ),
+                                   QgsPoint( xoff + 1, yoff - 1 ),
+                                   QgsPoint( xoff + 2, yoff + 0 ),
+                                   points, 0.1,
+                                   QgsAbstractGeometry::MaximumDifference, false, false );
+  QCOMPARE( points.size(), 5 );
+  QGSCOMPARENEAR( points[0].x(), xoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[0].y(), yoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[1].x(), xoff + 1 - sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[1].y(), yoff + -sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[2].x(), xoff + 1.0, 0.00001 );
+  QGSCOMPARENEAR( points[2].y(), yoff + -1.0, 0.00001 );
+  QGSCOMPARENEAR( points[3].x(), xoff + 1 + sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[3].y(), yoff + -sqrt( 2 ) / 2, 0.00001 );
+  QGSCOMPARENEAR( points[4].x(), xoff + 2.0, 0.00001 );
+  QGSCOMPARENEAR( points[4].y(), yoff + 0.0, 0.00001 );
+}
+
+void TestQgsGeometryUtils::testSegmentizeArcFullCircle()
+{
+  QgsPointSequence points;
+  const double xoff = 1;
+  const double yoff = 100;
+  QgsGeometryUtils::segmentizeArc( QgsPoint( xoff + 0, yoff + 0 ),
+                                   QgsPoint( xoff + 2, yoff + 0 ),
+                                   QgsPoint( xoff + 0, yoff + 0 ),
+                                   points, 0.4,
+                                   QgsAbstractGeometry::MaximumDifference, false, false );
+  QCOMPARE( points.size(), 5 );
+  QGSCOMPARENEAR( points[0].x(), xoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[0].y(), yoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[1].x(), xoff + 1.0, 0.00001 );
+  QGSCOMPARENEAR( points[1].y(), yoff + -1.0, 0.00001 );
+  QGSCOMPARENEAR( points[2].x(), xoff + 2.0, 0.00001 );
+  QGSCOMPARENEAR( points[2].y(), yoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[3].x(), xoff + 1.0, 0.00001 );
+  QGSCOMPARENEAR( points[3].y(), yoff + 1.0, 0.00001 );
+  QGSCOMPARENEAR( points[4].x(), xoff + 0.0, 0.00001 );
+  QGSCOMPARENEAR( points[4].y(), yoff + 0.0, 0.00001 );
+}
+
 QGSTEST_MAIN( TestQgsGeometryUtils )
 #include "testqgsgeometryutils.moc"
diff --git a/tests/src/core/testqgsinvertedpolygonrenderer.cpp b/tests/src/core/testqgsinvertedpolygonrenderer.cpp
index 93362b0c42..ccf3f97179 100644
--- a/tests/src/core/testqgsinvertedpolygonrenderer.cpp
+++ b/tests/src/core/testqgsinvertedpolygonrenderer.cpp
@@ -54,9 +54,8 @@ class TestQgsInvertedPolygon : public QObject
     void checkSymbolItem();
     void preprocess();
     void projectionTest();
-#if defined(GDAL_VERSION_NUM) && GDAL_VERSION_MAJOR >= 2
     void curvedPolygons();
-#endif
+    void rotationTest();
 
   private:
     bool mTestHasError =  false ;
@@ -153,26 +152,33 @@ void TestQgsInvertedPolygon::projectionTest()
   QVERIFY( imageCheck( "inverted_polys_projection", &extent ) );
   QVERIFY( setQml( mpPolysLayer, "inverted_polys_preprocess.qml" ) );
   QVERIFY( imageCheck( "inverted_polys_projection2", &extent ) );
+  mMapSettings.setDestinationCrs( mpPolysLayer->crs() );
 }
 
-#if defined(GDAL_VERSION_NUM) && GDAL_VERSION_MAJOR >= 2
-// This test relies on GDAL support of curved polygons
 void TestQgsInvertedPolygon::curvedPolygons()
 {
   QString myCurvedPolysFileName = mTestDataDir + "curved_polys.gpkg";
   QFileInfo myCurvedPolyFileInfo( myCurvedPolysFileName );
   QgsVectorLayer *curvedLayer = new QgsVectorLayer( myCurvedPolyFileInfo.filePath() + "|layername=polys",
       myCurvedPolyFileInfo.completeBaseName(), "ogr" );
-  curvedLayer->setSimplifyMethod( simplifyMethod );
   QgsProject::instance()->addMapLayers( QList<QgsMapLayer *>() << curvedLayer );
 
   mReport += "<h2>Inverted polygon renderer, curved polygons test</h2>\n";
-  mMapSettings.setLayers( QStringList() << curvedLayer->id() );
-  QVERIFY( setQml( mpCurvedPolysLayer, "inverted_polys_single.qml" ) );
+  mMapSettings.setLayers( QList< QgsMapLayer * >() << curvedLayer );
+  QVERIFY( setQml( curvedLayer, "inverted_polys_single.qml" ) );
   QVERIFY( imageCheck( "inverted_polys_curved" ) );
-  mMapSettings.setLayers( QStringList() << curvedLayer->id() );
+  mMapSettings.setLayers( QList< QgsMapLayer * >() << mpPolysLayer );
 }
-#endif
+
+void TestQgsInvertedPolygon::rotationTest()
+{
+  mReport += QLatin1String( "<h2>Inverted polygon renderer, rotation test</h2>\n" );
+  mMapSettings.setRotation( 45 );
+  QVERIFY( setQml( mpPolysLayer, "inverted_polys_single.qml" ) );
+  QVERIFY( imageCheck( "inverted_polys_rotation" ) );
+  mMapSettings.setRotation( 0 );
+}
+
 
 //
 // Private helper functions not called directly by CTest
diff --git a/tests/src/core/testqgslabelingengine.cpp b/tests/src/core/testqgslabelingengine.cpp
index 7a587c92f9..519a2ef423 100644
--- a/tests/src/core/testqgslabelingengine.cpp
+++ b/tests/src/core/testqgslabelingengine.cpp
@@ -46,12 +46,22 @@ class TestQgsLabelingEngine : public QObject
     void testRuleBased();
     void zOrder(); //test that labels are stacked correctly
     void testEncodeDecodePositionOrder();
+    void testEncodeDecodeLinePlacement();
     void testSubstitutions();
     void testCapitalization();
     void testParticipatingLayers();
     void testRegisterFeatureUnprojectible();
     void testRotateHidePartial();
     void testParallelLabelSmallFeature();
+    void testAdjacentParts();
+    void testTouchingParts();
+    void testMergingLinesWithForks();
+    void testCurvedLabelsWithTinySegments();
+    void testCurvedLabelCorrectLinePlacement();
+    void testCurvedLabelNegativeDistance();
+    void testParallelPlacementPreferAbove();
+    void testLabelRotationWithReprojection();
+    void labelingResults();
 
   private:
     QgsVectorLayer *vl = nullptr;
@@ -472,6 +482,21 @@ void TestQgsLabelingEngine::testEncodeDecodePositionOrder()
   QCOMPARE( decoded, expected );
 }
 
+void TestQgsLabelingEngine::testEncodeDecodeLinePlacement()
+{
+  QString encoded = QgsLabelingUtils::encodeLinePlacementFlags( pal::FLAG_ABOVE_LINE | pal::FLAG_ON_LINE );
+  QVERIFY( !encoded.isEmpty() );
+  QCOMPARE( QgsLabelingUtils::decodeLinePlacementFlags( encoded ), pal::FLAG_ABOVE_LINE | pal::FLAG_ON_LINE );
+  encoded = QgsLabelingUtils::encodeLinePlacementFlags( pal::FLAG_ON_LINE | pal::FLAG_MAP_ORIENTATION );
+  QVERIFY( !encoded.isEmpty() );
+  QCOMPARE( QgsLabelingUtils::decodeLinePlacementFlags( encoded ), pal::FLAG_ON_LINE | pal::FLAG_MAP_ORIENTATION );
+
+  //test decoding with a messy string
+  QCOMPARE( QgsLabelingUtils::decodeLinePlacementFlags( QStringLiteral( ",ol,," ) ), pal::FLAG_ON_LINE | pal::FLAG_MAP_ORIENTATION );
+  QCOMPARE( QgsLabelingUtils::decodeLinePlacementFlags( QStringLiteral( ",ol,BL,  al" ) ), pal::FLAG_ON_LINE | pal::FLAG_ABOVE_LINE | pal::FLAG_BELOW_LINE | pal::FLAG_MAP_ORIENTATION );
+  QCOMPARE( QgsLabelingUtils::decodeLinePlacementFlags( QStringLiteral( ",ol,BL, LO,  al" ) ), pal::FLAG_ON_LINE | pal::FLAG_ABOVE_LINE | pal::FLAG_BELOW_LINE );
+}
+
 void TestQgsLabelingEngine::testSubstitutions()
 {
   QgsPalLayerSettings settings;
@@ -805,5 +830,617 @@ void TestQgsLabelingEngine::testParallelLabelSmallFeature()
   //  QVERIFY( imageCheck( "label_rotate_hide_partial", img, 20 ) );
 }
 
+void TestQgsLabelingEngine::testAdjacentParts()
+{
+  // test polygon layer with multipart feature with adjacent parts
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'X'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::OverPoint;
+  settings.labelPerPart = true;
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "Polygon?crs=epsg:3946&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "MultiPolygon (((1967901.6872910603415221 5162590.11975561361759901, 1967905.31832842249423265 5162591.80023225769400597, 1967907.63076798897236586 5162586.43503414187580347, 1967903.84105980419553816 5162584.57283254805952311, 1967901.6872910603415221 5162590.11975561361759901)),((1967901.64785283687524498 5162598.3270823871716857, 1967904.82891705213114619 5162601.06552503909915686, 1967910.82140435534529388 5162587.99774718284606934, 1967907.63076798897236586 5162586.43503414187580347, 1967905.31832842249423265 5162591.80023225769400597, 1967901.6872910603415221 5162590.11975561361759901, 1967899.27472299290820956 5162596.28855143301188946, 1967901.64785283687524498 5162598.3270823871716857)),((1967904.82891705213114619 5162601.06552503909915686, 1967901.64785283687524498 5162598.3270823871716857, 1967884.28552994946949184 5162626.09785370342433453, 1967895.81538487318903208 5162633.84423183929175138, 1967901.64141261484473944 5162624.63927845563739538, 1967906.47453573765233159 5162616.87410452589392662, 1967913.7844126324634999 5162604.47178338281810284, 1967909.58057221467606723 5162602.89022256527096033, 1967904.82891705213114619 5162601.06552503909915686)))" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( f.geometry().boundingBox() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_adjacent_parts" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testTouchingParts()
+{
+  // test line layer with multipart feature with touching (but unmerged) parts
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'XXXXXXXXXXXXXXXXXXXXXXXXXX'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::Curved;
+  settings.labelPerPart = false;
+  settings.mergeLines = true;
+
+  // if treated individually, none of these parts are long enough for the label to fit -- but the label should be rendered if the mergeLines setting is true,
+  // because the parts should be merged into a single linestring
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "MultiLineString?crs=epsg:3946&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "MultiLineString ((190000 5000010, 190050 5000000), (190050 5000000, 190100 5000000), (190200 5000000, 190150 5000000), (190150 5000000, 190100 5000000))" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( f.geometry().boundingBox() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_multipart_touching_lines" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testMergingLinesWithForks()
+{
+  // test that the "merge connected features" setting works well with line networks
+  // containing forks and small side branches
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'XXXXXXXXXXXXXXXXXXXXXXXXXX'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::Curved;
+  settings.labelPerPart = false;
+  settings.mergeLines = true;
+
+  // if treated individually, none of these parts are long enough for the label to fit -- but the label should be rendered if the mergeLines setting is true
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "LineString?crs=epsg:3946&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190000 5000010, 190100 5000000)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  // side branch
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190100 5000000, 190100 5000010)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  // side branch
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190100 5000000, 190100 4999995)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  // main road continues, note that we deliberately split this up into non-consecutive sections, just for extra checks!
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190120 5000000, 190200 5000000)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190120 5000000, 190100 5000000)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( vl2->extent() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_multipart_touching_branches" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testCurvedLabelsWithTinySegments()
+{
+  // test drawing curved labels when input linestring has many small segments
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'XXXXXXXXXXXXXXXXXXXXXXXXXX'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::Curved;
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "LineString?crs=epsg:3946&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  // our geometry starts with many small segments, followed by long ones
+  QgsGeometry g( QgsGeometry::fromWkt( QStringLiteral( "LineString (190000 5000010, 190100 5000000)" ) ) );
+  g = g.densifyByCount( 100 );
+  qgsgeometry_cast< QgsLineString * >( g.get() )->addVertex( QgsPoint( 190200, 5000000 ) );
+  f.setGeometry( g );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( g.boundingBox() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+  mapSettings.setFlag( QgsMapSettings::UseRenderingOptimization, false );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_curved_label_small_segments" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testCurvedLabelCorrectLinePlacement()
+{
+  // test drawing curved labels when input linestring has many small segments
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'XXXXXXXXXXXXXXXXXXXXXXXXXX'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::Curved;
+  settings.placementFlags = QgsPalLayerSettings::AboveLine | QgsPalLayerSettings::MapOrientation;
+  settings.maxCurvedCharAngleIn = 99;
+  settings.maxCurvedCharAngleOut = 99;
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "LineString?crs=epsg:4326&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  // Geometry which roughly curves around from "1 oclock" anticlockwise to 6 oclock.
+  QgsGeometry g( QgsGeometry::fromWkt( QStringLiteral( "LineString (0.30541596873255172 0.3835845896147404, -0.08989391401451696 0.21831379117811278, -0.33668341708542704 -0.01619207146845336, -0.156895589056393 -0.20714684533780003, 0.02735901730876611 -0.21496370742601911)" ) ) );
+  f.setGeometry( g );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( g.boundingBox() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_curved_label_above_1" ), img, 20 ) );
+
+  // and below...
+  settings.placementFlags = QgsPalLayerSettings::BelowLine | QgsPalLayerSettings::MapOrientation;
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+
+  QgsMapRendererSequentialJob job2( mapSettings );
+  job2.start();
+  job2.waitForFinished();
+
+  img = job2.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_curved_label_below_1" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testCurvedLabelNegativeDistance()
+{
+  // test line label rendering with negative distance
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'XXXXXXXXXXXXXXXXXXXXXXXXXX'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::Curved;
+  settings.labelPerPart = false;
+  settings.dist = -5;
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "LineString?crs=epsg:3946&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190000 5000010, 190100 5000000, 190200 5000000)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( f.geometry().boundingBox() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_curved_negative_distance" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testParallelPlacementPreferAbove()
+{
+  // given the choice of above or below placement, labels should always be placed above
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'XXXXXXXX'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::Line;
+  settings.placementFlags = QgsPalLayerSettings::AboveLine | QgsPalLayerSettings::BelowLine | QgsPalLayerSettings::MapOrientation;
+  settings.labelPerPart = false;
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "LineString?crs=epsg:3946&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "LineString (190000 5000010, 190200 5000000)" ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setDestinationCrs( vl2->crs() );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( f.geometry().boundingBox() );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "parallel_prefer_above" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::testLabelRotationWithReprojection()
+{
+  // test combination of map rotation with reprojected layer
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "'X'" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::OverPoint;
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "Point?crs=epsg:4326&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromPointXY( QgsPointXY( -6.250851540391068, 53.335006994584944 ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  f.setAttributes( QgsAttributes() << 2 );
+  f.setGeometry( QgsGeometry::fromPointXY( QgsPointXY( -21.950014487179544, 64.150023619739216 ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  f.setAttributes( QgsAttributes() << 3 );
+  f.setGeometry( QgsGeometry::fromPointXY( QgsPointXY( -0.118667702475932, 51.5019405883275 ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  QgsCoordinateReferenceSystem tgtCrs( QStringLiteral( "EPSG:3857" ) );
+  mapSettings.setDestinationCrs( tgtCrs );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( QgsRectangle( -4348530.5, 5618594.3, 2516176.1, 12412237.9 ) );
+  mapSettings.setRotation( 60 );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  QImage img = job.renderedImage();
+  QVERIFY( imageCheck( QStringLiteral( "label_rotate_with_reproject" ), img, 20 ) );
+}
+
+void TestQgsLabelingEngine::labelingResults()
+{
+  // test retrieval of labeling results
+  QgsPalLayerSettings settings;
+  setDefaultLabelParams( settings );
+
+  QgsTextFormat format = settings.format();
+  format.setSize( 20 );
+  format.setColor( QColor( 0, 0, 0 ) );
+  settings.setFormat( format );
+
+  settings.fieldName = QStringLiteral( "\"id\"" );
+  settings.isExpression = true;
+  settings.placement = QgsPalLayerSettings::OverPoint;
+
+
+  std::unique_ptr< QgsVectorLayer> vl2( new QgsVectorLayer( QStringLiteral( "Point?crs=epsg:4326&field=id:integer" ), QStringLiteral( "vl" ), QStringLiteral( "memory" ) ) );
+  vl2->setRenderer( new QgsNullSymbolRenderer() );
+
+  QgsFeature f;
+  f.setAttributes( QgsAttributes() << 1 );
+  f.setGeometry( QgsGeometry::fromPointXY( QgsPointXY( -6.250851540391068, 53.335006994584944 ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  f.setAttributes( QgsAttributes() << 8888 );
+  f.setGeometry( QgsGeometry::fromPointXY( QgsPointXY( -21.950014487179544, 64.150023619739216 ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  f.setAttributes( QgsAttributes() << 33333 );
+  f.setGeometry( QgsGeometry::fromPointXY( QgsPointXY( -0.118667702475932, 51.5019405883275 ) ) );
+  QVERIFY( vl2->dataProvider()->addFeature( f ) );
+  vl2->updateExtents();
+
+  vl2->setLabeling( new QgsVectorLayerSimpleLabeling( settings ) );  // TODO: this should not be necessary!
+  vl2->setLabelsEnabled( true );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  QgsCoordinateReferenceSystem tgtCrs( QStringLiteral( "EPSG:3857" ) );
+  mapSettings.setDestinationCrs( tgtCrs );
+
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( QgsRectangle( -4137976.6, 6557092.6, 1585557.4, 9656515.0 ) );
+// mapSettings.setRotation( 60 );
+  mapSettings.setLayers( QList<QgsMapLayer *>() << vl2.get() );
+  mapSettings.setOutputDpi( 96 );
+
+  QgsLabelingEngineSettings engineSettings = mapSettings.labelingEngineSettings();
+  engineSettings.setFlag( QgsLabelingEngineSettings::UsePartialCandidates, false );
+  engineSettings.setFlag( QgsLabelingEngineSettings::DrawLabelRectOnly, true );
+  //engineSettings.setFlag( QgsLabelingEngineSettings::DrawCandidates, true );
+  mapSettings.setLabelingEngineSettings( engineSettings );
+
+  QgsMapRendererSequentialJob job( mapSettings );
+  job.start();
+  job.waitForFinished();
+
+  std::unique_ptr< QgsLabelingResults > results( job.takeLabelingResults() );
+  QVERIFY( results );
+
+  // retrieve some labels
+  QList<QgsLabelPosition> labels = results->labelsAtPosition( QgsPointXY( -654732, 7003282 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 1 );
+  QCOMPARE( labels.at( 0 ).labelText, QStringLiteral( "1" ) );
+  QGSCOMPARENEAR( labels.at( 0 ).width, 167961, 500 ); // tolerance will probably need tweaking, to account for cross-platform font diffs
+  QGSCOMPARENEAR( labels.at( 0 ).height, 295119, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMinimum(), -779822, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMaximum(), -611861, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMinimum(), 6897647, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMaximum(), 7192767, 500 );
+  QCOMPARE( labels.at( 0 ).rotation, 0.0 );
+
+  labels = results->labelsAtPosition( QgsPointXY( -769822, 6927647 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 1 );
+  labels = results->labelsAtPosition( QgsPointXY( -615861, 7132767 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 1 );
+
+  labels = results->labelsAtPosition( QgsPointXY( -2463392, 9361711 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 2 );
+  QCOMPARE( labels.at( 0 ).labelText, QStringLiteral( "8888" ) );
+  QGSCOMPARENEAR( labels.at( 0 ).width, 671844, 500 ); // tolerance will probably need tweaking, to account for cross-platform font diffs
+  QGSCOMPARENEAR( labels.at( 0 ).height, 295119, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMinimum(), -2779386, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMaximum(), -2107542, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMinimum(), 9240403, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMaximum(), 9535523, 500 );
+  QCOMPARE( labels.at( 0 ).rotation, 0.0 );
+  labels = results->labelsAtPosition( QgsPointXY( -1383, 6708478 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 3 );
+  QCOMPARE( labels.at( 0 ).labelText, QStringLiteral( "33333" ) );
+  QGSCOMPARENEAR( labels.at( 0 ).width, 839805, 500 ); // tolerance will probably need tweaking, to account for cross-platform font diffs
+  QGSCOMPARENEAR( labels.at( 0 ).height, 295119, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMinimum(), -433112, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMaximum(), 406692, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMinimum(), 6563006, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMaximum(), 6858125, 500 );
+  QCOMPARE( labels.at( 0 ).rotation, 0.0 );
+  labels = results->labelsAtPosition( QgsPointXY( -2463392, 6708478 ) );
+  QCOMPARE( labels.count(), 0 );
+
+  // with rotation
+  mapSettings.setRotation( 60 );
+  QgsMapRendererSequentialJob job2( mapSettings );
+  job2.start();
+  job2.waitForFinished();
+  results.reset( job2.takeLabelingResults() );
+  QVERIFY( results );
+  labels = results->labelsAtPosition( QgsPointXY( -654732, 7003282 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 1 );
+  QCOMPARE( labels.at( 0 ).labelText, QStringLiteral( "1" ) );
+  QGSCOMPARENEAR( labels.at( 0 ).width, 167961, 500 ); // tolerance will probably need tweaking, to account for cross-platform font diffs
+  QGSCOMPARENEAR( labels.at( 0 ).height, 295119, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMinimum(), -865622, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMaximum(), -526060, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMinimum(), 6898697, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMaximum(), 7191716, 500 );
+  QCOMPARE( labels.at( 0 ).rotation, 60.0 );
+
+  // should fall outside of rotated bounding box!
+  labels = results->labelsAtPosition( QgsPointXY( -769822, 6927647 ) );
+  QCOMPARE( labels.count(), 0 );
+  labels = results->labelsAtPosition( QgsPointXY( -615861, 7132767 ) );
+  QCOMPARE( labels.count(), 0 );
+  // just on corner, should only work if rotation of label's bounding box is handled correctly
+  labels = results->labelsAtPosition( QgsPointXY( -610000, 6898800 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 1 );
+
+  labels = results->labelsAtPosition( QgsPointXY( -2463392, 9361711 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 2 );
+  QCOMPARE( labels.at( 0 ).labelText, QStringLiteral( "8888" ) );
+  QGSCOMPARENEAR( labels.at( 0 ).width, 671844, 500 ); // tolerance will probably need tweaking, to account for cross-platform font diffs
+  QGSCOMPARENEAR( labels.at( 0 ).height, 295119, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMinimum(), -2739216, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMaximum(), -2147712, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMinimum(), 9023266, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMaximum(), 9752660, 500 );
+  QCOMPARE( labels.at( 0 ).rotation, 60.0 );
+  labels = results->labelsAtPosition( QgsPointXY( -1383, 6708478 ) );
+  QCOMPARE( labels.count(), 1 );
+  QCOMPARE( labels.at( 0 ).featureId, 3 );
+  QCOMPARE( labels.at( 0 ).labelText, QStringLiteral( "33333" ) );
+  QGSCOMPARENEAR( labels.at( 0 ).width, 839805, 500 ); // tolerance will probably need tweaking, to account for cross-platform font diffs
+  QGSCOMPARENEAR( labels.at( 0 ).height, 295119, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMinimum(), -350952, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.xMaximum(), 324531, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMinimum(), 6273139, 500 );
+  QGSCOMPARENEAR( labels.at( 0 ).labelRect.yMaximum(), 7147992, 500 );
+  QCOMPARE( labels.at( 0 ).rotation, 60.0 );
+  labels = results->labelsAtPosition( QgsPointXY( -2463392, 6708478 ) );
+  QCOMPARE( labels.count(), 0 );
+}
+
 QGSTEST_MAIN( TestQgsLabelingEngine )
 #include "testqgslabelingengine.moc"
diff --git a/tests/src/core/testqgslayouttable.cpp b/tests/src/core/testqgslayouttable.cpp
index b1787bfbcc..773149bc2c 100644
--- a/tests/src/core/testqgslayouttable.cpp
+++ b/tests/src/core/testqgslayouttable.cpp
@@ -30,6 +30,9 @@
 #include "qgsproject.h"
 #include "qgsrelationmanager.h"
 #include "qgsreadwritecontext.h"
+#include "qgslayoutmanager.h"
+#include "qgsprintlayout.h"
+#include "qgslayoutatlas.h"
 
 #include <QObject>
 #include "qgstest.h"
@@ -52,6 +55,7 @@ class TestQgsLayoutTable : public QObject
     void attributeTableFilterFeatures(); //test filtering attribute table rows
     void attributeTableSetAttributes(); //test subset of attributes in table
     void attributeTableVisibleOnly(); //test displaying only visible attributes
+    void attributeTableInsideAtlasOnly();
     void attributeTableRender(); //test rendering attribute table
     void manualColumnWidth(); //test setting manual column widths
     void attributeTableEmpty(); //test empty modes for attribute table
@@ -59,6 +63,7 @@ class TestQgsLayoutTable : public QObject
     void attributeTableExtend();
     void attributeTableRepeat();
     void attributeTableAtlasSource(); //test attribute table in atlas feature mode
+    void attributeTableRestoreAtlasSource();
     void attributeTableRelationSource(); //test attribute table in relation mode
     void contentsContainsRow(); //test the contentsContainsRow function
     void removeDuplicates(); //test removing duplicate rows
@@ -341,6 +346,75 @@ void TestQgsLayoutTable::attributeTableVisibleOnly()
 
   //retrieve rows and check
   compareTable( table, expectedRows );
+
+  // with rotation
+  map->setMapRotation( 90 );
+  expectedRows.clear();
+  row.clear();
+  row << QStringLiteral( "Jet" ) << QStringLiteral( "90" ) << QStringLiteral( "3" ) << QStringLiteral( "2" ) << QStringLiteral( "0" ) << QStringLiteral( "2" );
+  expectedRows.append( row );
+  compareTable( table, expectedRows );
+}
+
+void TestQgsLayoutTable::attributeTableInsideAtlasOnly()
+{
+  //test displaying only visible attributes inside the atlas feature
+  QgsLayout l( QgsProject::instance() );
+  l.initializeDefaults();
+  QgsLayoutItemAttributeTable *table = new QgsLayoutItemAttributeTable( &l );
+  table->setVectorLayer( mVectorLayer );
+
+  QgsLayoutItemMap *map = new QgsLayoutItemMap( &l );
+  map->attemptSetSceneRect( QRectF( 20, 20, 200, 100 ) );
+  map->setFrameEnabled( true );
+  map->setExtent( QgsRectangle( -95.537, 32.736, -84.389, 42.2920 ) );
+  l.addLayoutItem( map );
+
+  table->setMap( map );
+  table->setFilterToAtlasFeature( true );
+
+  // no atlas feature
+  QVector<QStringList> expectedRows;
+  compareTable( table, expectedRows );
+
+  //setup atlas
+  std::unique_ptr< QgsVectorLayer > atlasLayer = qgis::make_unique< QgsVectorLayer >( QStringLiteral( "Polygon?crs=EPSG:3857" ), QStringLiteral( "atlas" ), QStringLiteral( "memory" ) );
+  QVERIFY( atlasLayer->isValid() );
+  QgsGeometry atlasGeom( QgsGeometry::fromWkt( QStringLiteral( "Polygon ((-8863916.31126776337623596 4621257.48816855065524578, -9664269.45078738406300545 5097056.938785120844841, -10049249.44194872118532658 3765399.75924854446202517, -8985488.94005555473268032 3458599.17133777122944593, -8863916.31126776337623596 4621257.48816855065524578))" ) ) );
+  QgsFeature f;
+  f.setGeometry( atlasGeom );
+  atlasLayer->dataProvider()->addFeature( f );
+  l.reportContext().setLayer( atlasLayer.get() );
+
+  QgsFeatureIterator it = atlasLayer->getFeatures();
+  it.nextFeature( f );
+  l.reportContext().setFeature( f );
+
+  QStringList row;
+  row << QStringLiteral( "Biplane" ) << QStringLiteral( "0" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "3" ) << QStringLiteral( "6" );
+  expectedRows.append( row );
+  row.clear();
+  row << QStringLiteral( "Jet" ) << QStringLiteral( "90" ) << QStringLiteral( "3" ) << QStringLiteral( "1" ) << QStringLiteral( "0" ) << QStringLiteral( "1" );
+  expectedRows.append( row );
+  row.clear();
+  row << QStringLiteral( "Biplane" ) << QStringLiteral( "340" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "3" ) << QStringLiteral( "6" );
+  expectedRows.append( row );
+
+  //retrieve rows and check
+  compareTable( table, expectedRows );
+
+  // combination of atlas and map extent visibility
+  table->setDisplayOnlyVisibleFeatures( true );
+  expectedRows.clear();
+  row.clear();
+  row << QStringLiteral( "Jet" ) << QStringLiteral( "90" ) << QStringLiteral( "3" ) << QStringLiteral( "1" ) << QStringLiteral( "0" ) << QStringLiteral( "1" );
+  expectedRows.append( row );
+  row.clear();
+  row << QStringLiteral( "Biplane" ) << QStringLiteral( "340" ) << QStringLiteral( "1" ) << QStringLiteral( "3" ) << QStringLiteral( "3" ) << QStringLiteral( "6" );
+  expectedRows.append( row );
+
+  //retrieve rows and check
+  compareTable( table, expectedRows );
 }
 
 void TestQgsLayoutTable::attributeTableRender()
@@ -609,6 +683,23 @@ void TestQgsLayoutTable::attributeTableAtlasSource()
 
 }
 
+void TestQgsLayoutTable::attributeTableRestoreAtlasSource()
+{
+  const QString projectPath = QStringLiteral( TEST_DATA_DIR ) + "/layout_atlas_table.qgs";
+  QgsProject p;
+  p.read( projectPath );
+
+  QgsPrintLayout *l = dynamic_cast< QgsPrintLayout *>( p.layoutManager()->layouts().at( 0 ) );
+  QgsLayoutItemAttributeTable *table = qobject_cast< QgsLayoutItemAttributeTable * >( l->multiFrames().at( 0 ) );
+  QCOMPARE( table->source(), QgsLayoutItemAttributeTable::AtlasFeature );
+  QVERIFY( l->atlas()->coverageLayer() );
+  QVERIFY( l->atlas()->coverageLayer()->isValid() );
+  QCOMPARE( table->sourceLayer(), l->atlas()->coverageLayer() );
+  QCOMPARE( table->columns().count(), 2 );
+  QCOMPARE( table->columns().at( 0 )->attribute(), QStringLiteral( "Heading" ) );
+  QCOMPARE( table->columns().at( 1 )->attribute(), QStringLiteral( "Staff" ) );
+}
+
 
 void TestQgsLayoutTable::attributeTableRelationSource()
 {
@@ -1422,7 +1513,7 @@ void TestQgsLayoutTable::wrappedText()
 
   QFont f;
   QString sourceText( "Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua" );
-  QString wrapText = t->wrappedText( sourceText, 100 /*columnWidth*/, f );
+  QString wrapText = t->wrappedText( sourceText, 101 /*columnWidth*/, f );
   //there should be no line break before the last word (bug #20546)
   QVERIFY( !wrapText.endsWith( "\naliqua" ) );
 }
diff --git a/tests/src/core/testqgsofflineediting.cpp b/tests/src/core/testqgsofflineediting.cpp
index 524d79ad8e..534991d71a 100644
--- a/tests/src/core/testqgsofflineediting.cpp
+++ b/tests/src/core/testqgsofflineediting.cpp
@@ -37,6 +37,7 @@ class TestQgsOfflineEditing : public QObject
   private:
     QgsOfflineEditing *mOfflineEditing = nullptr;
     QgsVectorLayer *mpLayer = nullptr;
+    QgsVectorLayer *gpkgLayer = nullptr;
     QString offlineDataPath;
     QString offlineDbFile;
     QStringList layerIds;
@@ -52,6 +53,7 @@ class TestQgsOfflineEditing : public QObject
 
     void createSpatialiteAndSynchronizeBack();
     void createGeopackageAndSynchronizeBack();
+    void removeConstraintsOnDefaultValues();
 };
 
 void TestQgsOfflineEditing::initTestCase()
@@ -91,6 +93,15 @@ void TestQgsOfflineEditing::init()
   numberOfFields = mpLayer->fields().size();
 
   layerIds.append( mpLayer->id() );
+
+  //same with gpkg
+  QFile::copy( myFileName + "/points_gpkg.gpkg", myTempDirName + "/points_gpkg.gpkg" );
+  QString myTempFileNameGpgk = myTempDirName + "/points_gpkg.gpkg";
+  QFileInfo myMapFileInfoGpkg( myTempFileNameGpgk );
+  gpkgLayer = new QgsVectorLayer( myMapFileInfoGpkg.filePath() + "|layername=points_gpkg", "points_gpkg", QStringLiteral( "ogr" ) );
+
+  QgsProject::instance()->addMapLayer( gpkgLayer );
+  layerIds.append( gpkgLayer->id() );
 }
 
 void TestQgsOfflineEditing::cleanup()
@@ -115,7 +126,7 @@ void TestQgsOfflineEditing::createSpatialiteAndSynchronizeBack()
   //convert
   mOfflineEditing->convertToOfflineProject( offlineDataPath, offlineDbFile, layerIds, false, QgsOfflineEditing::SpatiaLite );
 
-  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayers().first() );
+  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayersByName( QStringLiteral( "points (offline)" ) ).first() );
   QCOMPARE( mpLayer->name(), QStringLiteral( "points (offline)" ) );
   QCOMPARE( mpLayer->featureCount(), numberOfFeatures );
   //check LayerTreeNode showFeatureCount property
@@ -127,7 +138,7 @@ void TestQgsOfflineEditing::createSpatialiteAndSynchronizeBack()
   //synchronize back
   mOfflineEditing->synchronize();
 
-  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayers().first() );
+  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayersByName( QStringLiteral( "points" ) ).first() );
   QCOMPARE( mpLayer->name(), QStringLiteral( "points" ) );
   QCOMPARE( mpLayer->featureCount(), numberOfFeatures );
   QCOMPARE( mpLayer->fields().size(), numberOfFields );
@@ -157,7 +168,7 @@ void TestQgsOfflineEditing::createGeopackageAndSynchronizeBack()
   //convert
   mOfflineEditing->convertToOfflineProject( offlineDataPath, offlineDbFile, layerIds, false, QgsOfflineEditing::GPKG );
 
-  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayers().first() );
+  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayersByName( QStringLiteral( "points (offline)" ) ).first() );
   QCOMPARE( mpLayer->name(), QStringLiteral( "points (offline)" ) );
   QCOMPARE( mpLayer->featureCount(), numberOfFeatures );
   //comparing with the number +1 because GPKG created an fid
@@ -189,7 +200,7 @@ void TestQgsOfflineEditing::createGeopackageAndSynchronizeBack()
   //synchronize back
   mOfflineEditing->synchronize();
 
-  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayers().first() );
+  mpLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayersByName( QStringLiteral( "points" ) ).first() );
   QCOMPARE( mpLayer->name(), QStringLiteral( "points" ) );
   QCOMPARE( mpLayer->dataProvider()->featureCount(), numberOfFeatures + 1 );
   QCOMPARE( mpLayer->fields().size(), numberOfFields );
@@ -215,5 +226,42 @@ void TestQgsOfflineEditing::createGeopackageAndSynchronizeBack()
   QCOMPARE( mpLayer->dataProvider()->featureCount(), numberOfFeatures );
 }
 
+
+void TestQgsOfflineEditing::removeConstraintsOnDefaultValues()
+{
+  offlineDbFile = "TestQgsOfflineEditing.gpkg";
+  QCOMPARE( gpkgLayer->name(), QStringLiteral( "points_gpkg" ) );
+  QString name = gpkgLayer->name();
+
+  //check constraints (not null and unique)
+  QgsFieldConstraints constraintsOfFidField = gpkgLayer->fields().at( gpkgLayer->fields().indexOf( QStringLiteral( "fid" ) ) ).constraints();
+  QVERIFY( constraintsOfFidField.constraints() & QgsFieldConstraints::ConstraintNotNull );
+  QVERIFY( constraintsOfFidField.constraints() & QgsFieldConstraints::ConstraintUnique );
+
+  //convert
+  mOfflineEditing->convertToOfflineProject( offlineDataPath, offlineDbFile, layerIds, false, QgsOfflineEditing::GPKG );
+
+  gpkgLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayersByName( QStringLiteral( "points_gpkg (offline)" ) ).first() );
+  QCOMPARE( gpkgLayer->name(), QStringLiteral( "points_gpkg (offline)" ) );
+
+  name = gpkgLayer->name();
+  //check constraints (unique but not not null)
+  constraintsOfFidField = gpkgLayer->fields().at( gpkgLayer->fields().indexOf( QStringLiteral( "fid" ) ) ).constraints();
+  QVERIFY( !( constraintsOfFidField.constraints() & QgsFieldConstraints::ConstraintNotNull ) );
+  QVERIFY( constraintsOfFidField.constraints() & QgsFieldConstraints::ConstraintUnique );
+
+  //synchronize back
+  mOfflineEditing->synchronize();
+
+  gpkgLayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayersByName( QStringLiteral( "points_gpkg" ) ).first() );
+
+  name = gpkgLayer->name();
+  //check constraints (not null and unique)
+  constraintsOfFidField = gpkgLayer->fields().at( gpkgLayer->fields().indexOf( QStringLiteral( "fid" ) ) ).constraints();
+  QVERIFY( constraintsOfFidField.constraints() & QgsFieldConstraints::ConstraintNotNull );
+  QVERIFY( constraintsOfFidField.constraints() & QgsFieldConstraints::ConstraintUnique );
+}
+
+
 QGSTEST_MAIN( TestQgsOfflineEditing )
 #include "testqgsofflineediting.moc"
diff --git a/tests/src/core/testqgsogcutils.cpp b/tests/src/core/testqgsogcutils.cpp
index 2f6c6338d4..0372de17eb 100644
--- a/tests/src/core/testqgsogcutils.cpp
+++ b/tests/src/core/testqgsogcutils.cpp
@@ -61,6 +61,9 @@ class TestQgsOgcUtils : public QObject
     void testExpressionFromOgcFilter();
     void testExpressionFromOgcFilter_data();
 
+    void testExpressionFromOgcFilterWithLongLong();
+    void testExpressionFromOgcFilterWithLongLong_data();
+
     void testExpressionFromOgcFilterWFS20();
     void testExpressionFromOgcFilterWFS20_data();
 
@@ -312,7 +315,7 @@ void TestQgsOgcUtils::testExpressionFromOgcFilterWFS20()
 
   QgsVectorLayer layer( "Point?crs=epsg:4326&field=LITERAL:string(20)", "temp", "memory" );
 
-  std::shared_ptr<QgsExpression> expr( QgsOgcUtils::expressionFromOgcFilter( rootElem, QgsOgcUtils::FILTER_FES_2_0, &layer ) );
+  std::unique_ptr<QgsExpression> expr( QgsOgcUtils::expressionFromOgcFilter( rootElem, QgsOgcUtils::FILTER_FES_2_0, &layer ) );
   QVERIFY( expr.get() );
 
   qDebug( "OGC XML  : %s", xmlText.toAscii().data() );
@@ -456,7 +459,57 @@ void TestQgsOgcUtils::testExpressionFromOgcFilter()
 
   QgsVectorLayer layer( "Point?crs=epsg:4326&field=LITERAL:string(20)", "temp", "memory" );
 
-  std::shared_ptr<QgsExpression> expr( QgsOgcUtils::expressionFromOgcFilter( rootElem, &layer ) );
+  std::unique_ptr<QgsExpression> expr( QgsOgcUtils::expressionFromOgcFilter( rootElem, &layer ) );
+  QVERIFY( expr.get() );
+
+  qDebug( "OGC XML  : %s", xmlText.toAscii().data() );
+  qDebug( "EXPR-DUMP: %s", expr->expression().toAscii().data() );
+
+  if ( expr->hasParserError() )
+    qDebug( "ERROR: %s ", expr->parserErrorString().toAscii().data() );
+  QVERIFY( !expr->hasParserError() );
+
+  QCOMPARE( dumpText, expr->expression() );
+}
+
+void TestQgsOgcUtils::testExpressionFromOgcFilterWithLongLong_data()
+{
+  QTest::addColumn<QString>( "xmlText" );
+  QTest::addColumn<QString>( "dumpText" );
+  QTest::newRow( "Literal less than" ) << QString(
+                                         "<Filter><And>"
+                                         "<PropertyIsGreaterThan>"
+                                         "<PropertyName>id</PropertyName>"
+                                         "<Literal>1</Literal>"
+                                         "</PropertyIsGreaterThan>"
+                                         "<PropertyIsLessThan>"
+                                         "<PropertyName>id</PropertyName>"
+                                         "<Literal>3</Literal>"
+                                         "</PropertyIsLessThan>"
+                                         "</And></Filter>" )
+                                       << QStringLiteral( "id > 1 AND id < 3" );
+}
+
+void TestQgsOgcUtils::testExpressionFromOgcFilterWithLongLong()
+{
+  QFETCH( QString, xmlText );
+  QFETCH( QString, dumpText );
+
+  QDomDocument doc;
+
+  QVERIFY( doc.setContent( xmlText, true ) );
+  QDomElement rootElem = doc.documentElement();
+
+  QgsVectorLayer layer( "Point?crs=epsg:4326", "temp", "memory" );
+
+  QgsField longlongField( QStringLiteral( "id" ), QVariant::LongLong );
+
+  QList<QgsField> fields;
+  fields.append( longlongField );
+  layer.dataProvider()->addAttributes( fields );
+  layer.updateFields();
+
+  std::unique_ptr<QgsExpression> expr( QgsOgcUtils::expressionFromOgcFilter( rootElem, &layer ) );
   QVERIFY( expr.get() );
 
   qDebug( "OGC XML  : %s", xmlText.toAscii().data() );
diff --git a/tests/src/core/testqgspainteffect.cpp b/tests/src/core/testqgspainteffect.cpp
index 430fe3464f..f123d5cb22 100644
--- a/tests/src/core/testqgspainteffect.cpp
+++ b/tests/src/core/testqgspainteffect.cpp
@@ -360,8 +360,8 @@ void TestQgsPaintEffect::blur()
   QCOMPARE( effect->opacity(), 0.5 );
   effect->setEnabled( false );
   QCOMPARE( effect->enabled(), false );
-  effect->setBlurLevel( 6 );
-  QCOMPARE( effect->blurLevel(), 6 );
+  effect->setBlurLevel( 6.0 );
+  QCOMPARE( effect->blurLevel(), 6.0 );
   effect->setBlurMethod( QgsBlurEffect::GaussianBlur );
   QCOMPARE( effect->blurMethod(), QgsBlurEffect::GaussianBlur );
   effect->setDrawMode( QgsPaintEffect::Modifier );
@@ -434,8 +434,8 @@ void TestQgsPaintEffect::dropShadow()
   QCOMPARE( effect->opacity(), 0.5 );
   effect->setEnabled( false );
   QCOMPARE( effect->enabled(), false );
-  effect->setBlurLevel( 6 );
-  QCOMPARE( effect->blurLevel(), 6 );
+  effect->setBlurLevel( 6.0 );
+  QCOMPARE( effect->blurLevel(), 6.0 );
   effect->setOffsetAngle( 77 );
   QCOMPARE( effect->offsetAngle(), 77 );
   effect->setOffsetDistance( 9.7 );
@@ -531,8 +531,8 @@ void TestQgsPaintEffect::glow()
   QCOMPARE( effect->opacity(), 0.5 );
   effect->setEnabled( false );
   QCOMPARE( effect->enabled(), false );
-  effect->setBlurLevel( 6 );
-  QCOMPARE( effect->blurLevel(), 6 );
+  effect->setBlurLevel( 6.0 );
+  QCOMPARE( effect->blurLevel(), 6.0 );
   effect->setSpread( 7.8 );
   QCOMPARE( effect->spread(), 7.8 );
   effect->setSpreadUnit( QgsUnitTypes::RenderMapUnits );
diff --git a/tests/src/core/testqgsstringutils.cpp b/tests/src/core/testqgsstringutils.cpp
index 26d3e9e13b..9dc17cc587 100644
--- a/tests/src/core/testqgsstringutils.cpp
+++ b/tests/src/core/testqgsstringutils.cpp
@@ -158,6 +158,8 @@ void TestQgsStringUtils::insertLinks()
   QVERIFY( found );
   QCOMPARE( QgsStringUtils::insertLinks( QString( "is a@a an email?" ), &found ), QString( "is a@a an email?" ) );
   QVERIFY( !found );
+  QCOMPARE( QgsStringUtils::insertLinks( QString( "Load file:///this/is/path/to.file?query=1#anchor" ), &found ), QString( "Load <a href=\"file:///this/is/path/to.file?query=1#anchor\">file:///this/is/path/to.file?query=1#anchor</a>" ) );
+  QVERIFY( found );
 }
 
 void TestQgsStringUtils::titleCase_data()
diff --git a/tests/src/core/testqgsvectorfilewriter.cpp b/tests/src/core/testqgsvectorfilewriter.cpp
index 019a534166..1b0550f8c2 100644
--- a/tests/src/core/testqgsvectorfilewriter.cpp
+++ b/tests/src/core/testqgsvectorfilewriter.cpp
@@ -62,6 +62,12 @@ class TestQgsVectorFileWriter: public QObject
   public:
     TestQgsVectorFileWriter();
 
+    void _testExportToGpx( const QString &geomTypeName,
+                           const QString &wkt,
+                           const QString &expectedLayerName,
+                           const QString &inputLayerName = QStringLiteral( "test" ),
+                           const QStringList &layerOptions = QStringList() );
+
   private slots:
     void initTestCase();// will be called before the first testfunction is executed.
     void init() {} // will be called before each testfunction is executed.
@@ -84,6 +90,20 @@ class TestQgsVectorFileWriter: public QObject
     void prepareWriteAsVectorFormat();
     //! Test regression #21714 (Exported GeoPackages have wrong field definitions)
     void testTextFieldLength();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxPoint();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxPointTrackPoints();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxPointRoutePoints();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxLineString();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxLineStringForceTrack();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxMultiLineString();
+    //! Test https://issues.qgis.org/issues/22005
+    void testExportToGpxMultiLineStringForceRoute();
 
   private:
     // a little util fn used by all tests
@@ -530,6 +550,111 @@ void TestQgsVectorFileWriter::testTextFieldLength()
 
 }
 
+void TestQgsVectorFileWriter::_testExportToGpx( const QString &geomTypeName,
+    const QString &wkt,
+    const QString &expectedLayerName,
+    const QString &inputLayerName,
+    const QStringList &layerOptions )
+{
+  QTemporaryFile tmpFile( QDir::tempPath() +  "/test_qgsvectorfilewriter_testExportToGpx" + geomTypeName + "_XXXXXX.gpx" );
+  tmpFile.open();
+  QString fileName( tmpFile.fileName( ) );
+  QString memLayerDef( geomTypeName );
+  if ( inputLayerName == QLatin1String( "track_points" ) )
+  {
+    memLayerDef += QStringLiteral( "?field=track_fid:int&field=track_seg_id:int" );
+  }
+  else if ( inputLayerName == QLatin1String( "route_points" ) )
+  {
+    memLayerDef += QStringLiteral( "?field=route_fid:int" );
+  }
+  QgsVectorLayer vl( memLayerDef, "test", "memory" );
+  QgsFeature f { vl.fields() };
+  if ( inputLayerName == QLatin1String( "track_points" ) )
+  {
+    f.setAttribute( 0, 1 );
+    f.setAttribute( 1, 1 );
+  }
+  else if ( inputLayerName == QLatin1String( "route_points" ) )
+  {
+    f.setAttribute( 0, 1 );
+  }
+  f.setGeometry( QgsGeometry::fromWkt( wkt ) );
+  QVERIFY( vl.startEditing() );
+  QVERIFY( vl.addFeature( f ) );
+  QgsVectorFileWriter::SaveVectorOptions options;
+  options.driverName = "GPX";
+  options.layerName = inputLayerName;
+  options.layerOptions = layerOptions;
+  QString outLayerName;
+  QgsVectorFileWriter::WriterError error( QgsVectorFileWriter::writeAsVectorFormat(
+      &vl,
+      fileName,
+      options,
+      nullptr, // newFilename
+      nullptr, // errorMessage
+      &outLayerName ) );
+  QCOMPARE( error, QgsVectorFileWriter::WriterError::NoError );
+  QCOMPARE( outLayerName, expectedLayerName );
+  QgsVectorLayer vl2( QStringLiteral( "%1|layername=%2" ).arg( fileName ).arg( outLayerName ), "src_test", "ogr" );
+  QVERIFY( vl2.isValid() );
+  QCOMPARE( vl2.featureCount(), 1L );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxPoint()
+{
+  _testExportToGpx( QStringLiteral( "Point" ),
+                    QStringLiteral( "point(9 45)" ),
+                    QStringLiteral( "waypoints" ) );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxPointTrackPoints()
+{
+  _testExportToGpx( QStringLiteral( "Point" ),
+                    QStringLiteral( "point(9 45)" ),
+                    QStringLiteral( "track_points" ),
+                    QStringLiteral( "track_points" ) );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxPointRoutePoints()
+{
+  _testExportToGpx( QStringLiteral( "Point" ),
+                    QStringLiteral( "point(9 45)" ),
+                    QStringLiteral( "route_points" ),
+                    QStringLiteral( "route_points" ) );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxLineString()
+{
+  _testExportToGpx( QStringLiteral( "LineString" ),
+                    QStringLiteral( "linestring(9 45,10 46)" ),
+                    QStringLiteral( "routes" ) );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxLineStringForceTrack()
+{
+  _testExportToGpx( QStringLiteral( "LineString" ),
+                    QStringLiteral( "linestring(9 45,10 46)" ),
+                    QStringLiteral( "tracks" ),
+                    QStringLiteral( "test" ),
+                    QStringList() << QStringLiteral( "FORCE_GPX_TRACK=YES" ) );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxMultiLineString()
+{
+  _testExportToGpx( QStringLiteral( "MultiLineString" ),
+                    QStringLiteral( "multilinestring((9 45,10 46))" ),
+                    QStringLiteral( "tracks" ) );
+}
+
+void TestQgsVectorFileWriter::testExportToGpxMultiLineStringForceRoute()
+{
+  _testExportToGpx( QStringLiteral( "MultiLineString" ),
+                    QStringLiteral( "multilinestring((9 45,10 46))" ),
+                    QStringLiteral( "routes" ),
+                    QStringLiteral( "test" ),
+                    QStringList() << QStringLiteral( "FORCE_GPX_ROUTE=YES" ) );
+}
 
 QGSTEST_MAIN( TestQgsVectorFileWriter )
 #include "testqgsvectorfilewriter.moc"
diff --git a/tests/src/gui/CMakeLists.txt b/tests/src/gui/CMakeLists.txt
index e19153f0f2..468401e66d 100644
--- a/tests/src/gui/CMakeLists.txt
+++ b/tests/src/gui/CMakeLists.txt
@@ -145,6 +145,7 @@ ADD_QGIS_TEST(filedownloader testqgsfiledownloader.cpp)
 ADD_QGIS_TEST(layoutgui testqgslayoutgui.cpp)
 ADD_QGIS_TEST(layoutview testqgslayoutview.cpp)
 ADD_QGIS_TEST(valuemapwidgetwrapper testqgsvaluemapwidgetwrapper.cpp)
+ADD_QGIS_TEST(rasterlayersaveasdialog testqgsrasterlayersaveasdialog.cpp)
 ADD_QGIS_TEST(valuerelationwidgetwrapper testqgsvaluerelationwidgetwrapper.cpp)
 ADD_QGIS_TEST(relationreferencewidget testqgsrelationreferencewidget.cpp)
 ADD_QGIS_TEST(featurelistcombobox testqgsfeaturelistcombobox.cpp)
diff --git a/tests/src/gui/testqgsrasterlayersaveasdialog.cpp b/tests/src/gui/testqgsrasterlayersaveasdialog.cpp
new file mode 100644
index 0000000000..21b62a6577
--- /dev/null
+++ b/tests/src/gui/testqgsrasterlayersaveasdialog.cpp
@@ -0,0 +1,145 @@
+/***************************************************************************
+    testqgsrasterlayersaveasdialog.cpp
+     --------------------------------------
+    Date                 : May 2019
+    Copyright            : (C) 2019 Alessandro Pasotti
+    Email                : elpaso at itopen dot it
+ ***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+
+#include "qgstest.h"
+
+#include "qgsrasterlayersaveasdialog.h"
+#include "qgsvectorfilewriter.h"
+#include "qgsvectorlayer.h"
+#include "qgsrasterlayer.h"
+#include "qgsrasterfilewriter.h"
+
+#include "qgsgui.h"
+
+class TestQgsRasterLayerSaveAsDialog : public QObject
+{
+    Q_OBJECT
+  public:
+    TestQgsRasterLayerSaveAsDialog() = default;
+
+  private slots:
+    void initTestCase(); // will be called before the first testfunction is executed.
+    void cleanupTestCase(); // will be called after the last testfunction was executed.
+    void init(); // will be called before each testfunction is executed.
+    void cleanup(); // will be called after every testfunction.
+    void outputLayerExists();
+
+  private:
+
+    QString prepareDb();
+
+};
+
+void TestQgsRasterLayerSaveAsDialog::initTestCase()
+{
+  QgsApplication::init();
+  QgsApplication::initQgis();
+}
+
+void TestQgsRasterLayerSaveAsDialog::cleanupTestCase()
+{
+  QgsApplication::exitQgis();
+}
+
+void TestQgsRasterLayerSaveAsDialog::init()
+{
+}
+
+void TestQgsRasterLayerSaveAsDialog::cleanup()
+{
+}
+
+void TestQgsRasterLayerSaveAsDialog::outputLayerExists()
+{
+  QString fileName { prepareDb() };
+
+  // Try to add a raster layer to the DB
+  QString dataDir( TEST_DATA_DIR ); //defined in CmakeLists.txt
+  QString rasterPath { dataDir + "/landsat.tif" };
+
+  QgsRasterLayer rl( rasterPath, QStringLiteral( "my_raster" ) );
+  QVERIFY( rl.isValid() );
+
+  QgsRasterLayerSaveAsDialog d( &rl, rl.dataProvider(), rl.extent(), rl.crs(), rl.crs() );
+  d.mFormatComboBox->setCurrentIndex( d.mFormatComboBox->findData( QStringLiteral( "GPKG" ) ) );
+  QCOMPARE( d.mFormatComboBox->currentData().toString(), QString( "GPKG" ) );
+  QVERIFY( ! d.outputLayerExists() );
+  d.mFilename->setFilePath( fileName );
+  d.mLayerName->setText( QStringLiteral( "my_imported_raster" ) );
+  QVERIFY( ! d.outputLayerExists() );
+
+  // Write the raster into the destination file
+  auto pipe { *rl.pipe() };
+  auto rasterUri { QStringLiteral( "GPKG:%1:%2" ).arg( d.outputFileName() ).arg( d.outputLayerName() ) };
+  auto fileWriter { QgsRasterFileWriter( d.outputFileName() ) };
+  fileWriter.setCreateOptions( d.createOptions() );
+  fileWriter.setOutputFormat( d.outputFormat() );
+  fileWriter.setBuildPyramidsFlag( d.buildPyramidsFlag() );
+  fileWriter.setPyramidsList( d.pyramidsList() );
+  fileWriter.setPyramidsResampling( d.pyramidsResamplingMethod() );
+  fileWriter.setPyramidsFormat( d.pyramidsFormat() );
+  fileWriter.setPyramidsConfigOptions( d.pyramidsConfigOptions() );
+  fileWriter.writeRaster( &pipe, 10, 10, rl.extent(), rl.crs() );
+  {
+    QVERIFY( QgsRasterLayer( rasterUri, QStringLiteral( "my_raster2" ) ).isValid() );
+  }
+  QVERIFY( d.outputLayerExists() );
+  // Now try to save with the same name of the existing vector layer
+  d.mLayerName->setText( QStringLiteral( "test_vector_layer" ) );
+  QVERIFY( d.outputLayerExists() );
+  auto fileWriter2 { QgsRasterFileWriter( d.outputFileName() ) };
+  fileWriter2.writeRaster( &pipe, 10, 10, rl.extent(), rl.crs() );
+  {
+    auto rasterUri2 { QStringLiteral( "GPKG:%1:%2" ).arg( d.outputFileName() ).arg( d.outputLayerName() ) };
+    QVERIFY( ! QgsRasterLayer( rasterUri2, QStringLiteral( "my_raster2" ) ).isValid() );
+  }
+}
+
+QString TestQgsRasterLayerSaveAsDialog::prepareDb()
+{
+  // Preparation: make a test gpk DB with a vector layer in it
+  QTemporaryFile tmpFile( QDir::tempPath() +  QStringLiteral( "/test_qgsrasterlayersavesdialog_XXXXXX.gpkg" ) );
+  tmpFile.setAutoRemove( false );
+  tmpFile.open();
+  QString fileName( tmpFile.fileName( ) );
+  QgsVectorLayer vl( QStringLiteral( "Point?field=firstfield:string(1024)" ), "test_vector_layer", "memory" );
+  QgsVectorFileWriter w( fileName,
+                         QStringLiteral( "UTF-8" ),
+                         vl.fields(),
+                         QgsWkbTypes::Point,
+                         vl.crs() );
+  QgsFeature f { vl.fields() };
+  f.setAttribute( 0, QString( 1024, 'x' ) );
+  f.setGeometry( QgsGeometry::fromWkt( QStringLiteral( "point(9 45)" ) ) );
+  vl.startEditing();
+  vl.addFeature( f );
+  QgsVectorFileWriter::SaveVectorOptions options;
+  options.driverName = QStringLiteral( "GPKG" );
+  options.layerName = QStringLiteral( "test_vector_layer" );
+  QString errorMessage;
+  QgsVectorFileWriter::writeAsVectorFormat(
+    &vl,
+    fileName,
+    options,
+    &errorMessage );
+  QgsVectorLayer vl2( QStringLiteral( "%1|layername=test_vector_layer" ).arg( fileName ), "test_vector_layer", "ogr" );
+  Q_ASSERT( vl2.isValid() );
+  return tmpFile.fileName( );
+}
+
+QGSTEST_MAIN( TestQgsRasterLayerSaveAsDialog )
+
+#include "testqgsrasterlayersaveasdialog.moc"
diff --git a/tests/src/gui/testqgsrelationreferencewidget.cpp b/tests/src/gui/testqgsrelationreferencewidget.cpp
index 33f62e74bd..ffbbb4a259 100644
--- a/tests/src/gui/testqgsrelationreferencewidget.cpp
+++ b/tests/src/gui/testqgsrelationreferencewidget.cpp
@@ -47,6 +47,7 @@ class TestQgsRelationReferenceWidget : public QObject
     void testChainFilterDeleteForeignKey();
     void testInvalidRelation();
     void testSetGetForeignKey();
+    void testIdentifyOnMap();
 
   private:
     std::unique_ptr<QgsVectorLayer> mLayer1;
@@ -340,5 +341,38 @@ void TestQgsRelationReferenceWidget::testSetGetForeignKey()
   QCOMPARE( spy.count(), 3 );
 }
 
+
+// Test issue https://issues.qgis.org/issues/22071
+// Relation reference widget wrong feature when "on map identification"
+void TestQgsRelationReferenceWidget::testIdentifyOnMap()
+{
+  QWidget parentWidget;
+  QgsRelationReferenceWidget w( &parentWidget );
+  QVERIFY( mLayer1->startEditing() );
+  w.setRelation( *mRelation, true );
+  w.setAllowMapIdentification( true );
+  w.init();
+  QEventLoop loop;
+  // Populate model (I tried to listen to signals but the module reload() runs twice
+  // (the first load triggers a second one which does the population of the combo)
+  // and I haven't fin a way to properly wait for it.
+  QTimer::singleShot( 300, [&] { loop.quit(); } );
+  loop.exec();
+  QgsFeature feature;
+  mLayer2->getFeatures( QStringLiteral( "pk = %1" ).arg( 11 ) ).nextFeature( feature );
+  QVERIFY( feature.isValid() );
+  QCOMPARE( feature.attribute( QStringLiteral( "pk" ) ).toInt(), 11 );
+  w.featureIdentified( feature );
+  QCOMPARE( w.mComboBox->currentData( Qt::DisplayRole ).toInt(), 11 );
+
+  mLayer2->getFeatures( QStringLiteral( "pk = %1" ).arg( 10 ) ).nextFeature( feature );
+  QVERIFY( feature.isValid() );
+  QCOMPARE( feature.attribute( QStringLiteral( "pk" ) ).toInt(), 10 );
+  w.featureIdentified( feature );
+  QCOMPARE( w.mComboBox->currentData( Qt::DisplayRole ).toInt(), 10 );
+
+  mLayer1->rollBack();
+}
+
 QGSTEST_MAIN( TestQgsRelationReferenceWidget )
 #include "testqgsrelationreferencewidget.moc"
diff --git a/tests/src/providers/CMakeLists.txt b/tests/src/providers/CMakeLists.txt
index ef119115f9..86a6c297a6 100644
--- a/tests/src/providers/CMakeLists.txt
+++ b/tests/src/providers/CMakeLists.txt
@@ -11,6 +11,7 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_SOURCE_DIR}/src/core/geometry
   ${CMAKE_SOURCE_DIR}/src/core/mesh
   ${CMAKE_SOURCE_DIR}/src/core/metadata
+  ${CMAKE_SOURCE_DIR}/src/core/pal
   ${CMAKE_SOURCE_DIR}/src/core/raster
   ${CMAKE_SOURCE_DIR}/src/core/symbology
   ${CMAKE_SOURCE_DIR}/src/providers/wms
diff --git a/tests/src/python/CMakeLists.txt b/tests/src/python/CMakeLists.txt
index 9168be61f1..9f3289402e 100644
--- a/tests/src/python/CMakeLists.txt
+++ b/tests/src/python/CMakeLists.txt
@@ -17,6 +17,7 @@ ADD_PYTHON_TEST(PyQgsAggregateCalculator test_qgsaggregatecalculator.py)
 ADD_PYTHON_TEST(PyQgsAnnotation test_qgsannotation.py)
 ADD_PYTHON_TEST(PyQgsApplication test_qgsapplication.py)
 ADD_PYTHON_TEST(PyQgsAttributeFormEditorWidget test_qgsattributeformeditorwidget.py)
+ADD_PYTHON_TEST(PyQgsAttributeForm test_qgsattributeform.py)
 ADD_PYTHON_TEST(PyQgsAttributeTableConfig test_qgsattributetableconfig.py)
 ADD_PYTHON_TEST(PyQgsAttributeTableModel test_qgsattributetablemodel.py)
 ADD_PYTHON_TEST(PyQgsAuthenticationSystem test_qgsauthsystem.py)
@@ -26,6 +27,7 @@ ADD_PYTHON_TEST(PyQgsBox3d test_qgsbox3d.py)
 ADD_PYTHON_TEST(PyQgsCategorizedSymbolRenderer test_qgscategorizedsymbolrenderer.py)
 ADD_PYTHON_TEST(PyQgsCheckableComboBox test_qgscheckablecombobox.py)
 ADD_PYTHON_TEST(PyQgsColorButton test_qgscolorbutton.py)
+ADD_PYTHON_TEST(PyQgsColorRamp test_qgscolorramp.py)
 ADD_PYTHON_TEST(PyQgsColorScheme test_qgscolorscheme.py)
 ADD_PYTHON_TEST(PyQgsColorSchemeRegistry test_qgscolorschemeregistry.py)
 ADD_PYTHON_TEST(PyQgsCoordinateFormatter test_qgscoordinateformatter.py)
@@ -198,7 +200,6 @@ ADD_PYTHON_TEST(PyQgsTaskManager test_qgstaskmanager.py)
 ADD_PYTHON_TEST(PyQgsTextFormatWidget test_qgstextformatwidget.py)
 ADD_PYTHON_TEST(PyQgsTreeWidgetItem test_qgstreewidgetitem.py)
 ADD_PYTHON_TEST(PyQgsUnitTypes test_qgsunittypes.py)
-ADD_PYTHON_TEST(PyQgsVectorColorRamp test_qgsvectorcolorramp.py)
 ADD_PYTHON_TEST(PyQgsVectorFileWriter test_qgsvectorfilewriter.py)
 ADD_PYTHON_TEST(PyQgsVectorFileWriterTask test_qgsvectorfilewritertask.py)
 ADD_PYTHON_TEST(PyQgsVectorLayer test_qgsvectorlayer.py)
diff --git a/tests/src/python/featuresourcetestbase.py b/tests/src/python/featuresourcetestbase.py
index 38134d39a5..859cd3193f 100644
--- a/tests/src/python/featuresourcetestbase.py
+++ b/tests/src/python/featuresourcetestbase.py
@@ -13,7 +13,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2017-05-25'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (
     QgsRectangle,
diff --git a/tests/src/python/offlineditingtestbase.py b/tests/src/python/offlineditingtestbase.py
index 74f9ba24e0..69ca908a68 100644
--- a/tests/src/python/offlineditingtestbase.py
+++ b/tests/src/python/offlineditingtestbase.py
@@ -25,7 +25,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '2016-06-30'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from time import sleep
 
diff --git a/tests/src/python/provider_python.py b/tests/src/python/provider_python.py
index d812aaa827..e538ded166 100644
--- a/tests/src/python/provider_python.py
+++ b/tests/src/python/provider_python.py
@@ -13,7 +13,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '2018-03-18'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (
diff --git a/tests/src/python/providertestbase.py b/tests/src/python/providertestbase.py
index 9b1f3927ba..9dafee30db 100644
--- a/tests/src/python/providertestbase.py
+++ b/tests/src/python/providertestbase.py
@@ -14,7 +14,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '2015-04-27'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (
     QgsApplication,
diff --git a/tests/src/python/qgis_interface.py b/tests/src/python/qgis_interface.py
index 6cbc987287..d5afa0b9ec 100644
--- a/tests/src/python/qgis_interface.py
+++ b/tests/src/python/qgis_interface.py
@@ -18,7 +18,7 @@ Contact : ole.moller.nielsen@gmail.com
 
 __author__ = 'tim@linfiniti.com'
 __version__ = '0.5.0'
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 __date__ = '10/01/2011'
 __copyright__ = ('Copyright (c) 2010 by Ivan Mincik, ivan.mincik@gista.sk and '
                  'Copyright (c) 2011 German Carrillo, '
diff --git a/tests/src/python/qgis_local_server.py b/tests/src/python/qgis_local_server.py
index 61717f2d02..b4399886b7 100644
--- a/tests/src/python/qgis_local_server.py
+++ b/tests/src/python/qgis_local_server.py
@@ -11,7 +11,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '2014/02/11'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 import os
diff --git a/tests/src/python/qgis_wrapped_server.py b/tests/src/python/qgis_wrapped_server.py
index 6f301f2744..1132248613 100644
--- a/tests/src/python/qgis_wrapped_server.py
+++ b/tests/src/python/qgis_wrapped_server.py
@@ -131,7 +131,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '05/15/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 # Needed on Qt 5 so that the serialization of XML is consistent among all
diff --git a/tests/src/python/test_authmanager_oauth2_ows.py b/tests/src/python/test_authmanager_oauth2_ows.py
index 502bfb6096..58937056e6 100644
--- a/tests/src/python/test_authmanager_oauth2_ows.py
+++ b/tests/src/python/test_authmanager_oauth2_ows.py
@@ -30,7 +30,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '20/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from shutil import rmtree
 
diff --git a/tests/src/python/test_authmanager_ogr.py b/tests/src/python/test_authmanager_ogr.py
index ace6e1fc02..667ef8f86e 100644
--- a/tests/src/python/test_authmanager_ogr.py
+++ b/tests/src/python/test_authmanager_ogr.py
@@ -29,7 +29,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '14/11/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 qgis_app = start_app()
diff --git a/tests/src/python/test_authmanager_ogr_postgres.py b/tests/src/python/test_authmanager_ogr_postgres.py
index e2a600c688..f876a79806 100644
--- a/tests/src/python/test_authmanager_ogr_postgres.py
+++ b/tests/src/python/test_authmanager_ogr_postgres.py
@@ -55,7 +55,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '03/11/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 QGIS_POSTGRES_SERVER_PORT = os.environ.get('QGIS_POSTGRES_SERVER_PORT', '55432')
 QGIS_POSTGRES_EXECUTABLE_PATH = os.environ.get('QGIS_POSTGRES_EXECUTABLE_PATH', '/usr/lib/postgresql/9.4/bin')
diff --git a/tests/src/python/test_authmanager_password_ows.py b/tests/src/python/test_authmanager_password_ows.py
index 629dfbf4fc..a7a7e43e8e 100644
--- a/tests/src/python/test_authmanager_password_ows.py
+++ b/tests/src/python/test_authmanager_password_ows.py
@@ -30,7 +30,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '18/09/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from shutil import rmtree
 
diff --git a/tests/src/python/test_authmanager_password_postgres.py b/tests/src/python/test_authmanager_password_postgres.py
index 8c41784b74..24be5d5d2d 100644
--- a/tests/src/python/test_authmanager_password_postgres.py
+++ b/tests/src/python/test_authmanager_password_postgres.py
@@ -55,7 +55,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 QGIS_POSTGRES_SERVER_PORT = os.environ.get('QGIS_POSTGRES_SERVER_PORT', '55432')
 QGIS_POSTGRES_EXECUTABLE_PATH = os.environ.get('QGIS_POSTGRES_EXECUTABLE_PATH', '/usr/lib/postgresql/9.4/bin')
diff --git a/tests/src/python/test_authmanager_pki_ows.py b/tests/src/python/test_authmanager_pki_ows.py
index 380c599429..57000e0a05 100644
--- a/tests/src/python/test_authmanager_pki_ows.py
+++ b/tests/src/python/test_authmanager_pki_ows.py
@@ -27,7 +27,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from shutil import rmtree
 
diff --git a/tests/src/python/test_authmanager_pki_postgres.py b/tests/src/python/test_authmanager_pki_postgres.py
index 72bc2e333c..38d38bd59f 100644
--- a/tests/src/python/test_authmanager_pki_postgres.py
+++ b/tests/src/python/test_authmanager_pki_postgres.py
@@ -57,7 +57,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 QGIS_POSTGRES_SERVER_PORT = os.environ.get('QGIS_POSTGRES_SERVER_PORT', '55432')
 QGIS_POSTGRES_EXECUTABLE_PATH = os.environ.get('QGIS_POSTGRES_EXECUTABLE_PATH', '/usr/lib/postgresql/9.4/bin')
diff --git a/tests/src/python/test_authmanager_proxy.py b/tests/src/python/test_authmanager_proxy.py
index 51d6016346..86e11d8e12 100644
--- a/tests/src/python/test_authmanager_proxy.py
+++ b/tests/src/python/test_authmanager_proxy.py
@@ -25,7 +25,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '27/09/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 QGIS_AUTH_DB_DIR_PATH = tempfile.mkdtemp()
diff --git a/tests/src/python/test_authsettingswidget.py b/tests/src/python/test_authsettingswidget.py
index d84ae3c93d..ca92906938 100644
--- a/tests/src/python/test_authsettingswidget.py
+++ b/tests/src/python/test_authsettingswidget.py
@@ -28,7 +28,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '27/09/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 QGIS_AUTH_DB_DIR_PATH = tempfile.mkdtemp()
diff --git a/tests/src/python/test_console.py b/tests/src/python/test_console.py
index c68376a951..38c1aa12ee 100644
--- a/tests/src/python/test_console.py
+++ b/tests/src/python/test_console.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '15.4.2016'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_core_additions.py b/tests/src/python/test_core_additions.py
index 6b14d9c967..b2dd18ed6b 100644
--- a/tests/src/python/test_core_additions.py
+++ b/tests/src/python/test_core_additions.py
@@ -10,7 +10,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '15.5.2018'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_db_manager_gpkg.py b/tests/src/python/test_db_manager_gpkg.py
index 09c402c2a5..c09cfdf67a 100644
--- a/tests/src/python/test_db_manager_gpkg.py
+++ b/tests/src/python/test_db_manager_gpkg.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-10-17'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_db_manager_postgis.py b/tests/src/python/test_db_manager_postgis.py
index 8b12d9130d..c867854f08 100644
--- a/tests/src/python/test_db_manager_postgis.py
+++ b/tests/src/python/test_db_manager_postgis.py
@@ -10,7 +10,7 @@ __author__ = 'Luigi Pirelli'
 __date__ = '2017-11-02'
 __copyright__ = 'Copyright 2017, Boundless Spatial Inc'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import shutil
diff --git a/tests/src/python/test_db_manager_spatialite.py b/tests/src/python/test_db_manager_spatialite.py
index 33729d81d9..f63d0ab06d 100644
--- a/tests/src/python/test_db_manager_spatialite.py
+++ b/tests/src/python/test_db_manager_spatialite.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-10-17'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_layer_dependencies.py b/tests/src/python/test_layer_dependencies.py
index 65967c9f91..c1a6ca470d 100644
--- a/tests/src/python/test_layer_dependencies.py
+++ b/tests/src/python/test_layer_dependencies.py
@@ -10,7 +10,7 @@ __author__ = 'Hugo Mercier'
 __date__ = '12/07/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_offline_editing_wfs.py b/tests/src/python/test_offline_editing_wfs.py
index 985ba6f114..573291f1fb 100644
--- a/tests/src/python/test_offline_editing_wfs.py
+++ b/tests/src/python/test_offline_editing_wfs.py
@@ -26,7 +26,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '05/15/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/tests/src/python/test_project_storage_postgres.py b/tests/src/python/test_project_storage_postgres.py
index c6344298be..e3e9ab90b4 100644
--- a/tests/src/python/test_project_storage_postgres.py
+++ b/tests/src/python/test_project_storage_postgres.py
@@ -15,7 +15,7 @@ __author__ = 'Martin Dobias'
 __date__ = '2018-03-29'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import psycopg2
diff --git a/tests/src/python/test_provider_afs.py b/tests/src/python/test_provider_afs.py
index 949cf50942..9f904ba32b 100644
--- a/tests/src/python/test_provider_afs.py
+++ b/tests/src/python/test_provider_afs.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2018-02-16'
 __copyright__ = 'Copyright 2018, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import hashlib
 import os
@@ -129,7 +129,7 @@ class TestPyQgsAFSProvider(unittest.TestCase, ProviderTestCase):
         cls.source = cls.vl.dataProvider()
 
         with open(sanitize(endpoint,
-                           '/query?f=json&objectIds=5,3,1,2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=OBJECTID,pk,cnt,name,name2,num_char&returnM=false&returnZ=false'),
+                           '/query?f=json&objectIds=5,3,1,2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=*&returnM=false&returnZ=false'),
                   'wb') as f:
             f.write("""
         {
@@ -220,7 +220,7 @@ class TestPyQgsAFSProvider(unittest.TestCase, ProviderTestCase):
          ]
         }""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '/query?f=json&objectIds=5,3,1,2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=OBJECTID,pk,cnt,name,name2,num_char&returnM=false&returnZ=false&geometry=-71.123000,66.330000,-65.320000,78.300000&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelEnvelopeIntersects'), 'wb') as f:
+        with open(sanitize(endpoint, '/query?f=json&objectIds=5,3,1,2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=*&returnM=false&returnZ=false&geometry=-71.123000,66.330000,-65.320000,78.300000&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelEnvelopeIntersects'), 'wb') as f:
             f.write("""
 {
  "displayFieldName": "name",
@@ -311,7 +311,7 @@ class TestPyQgsAFSProvider(unittest.TestCase, ProviderTestCase):
 }""".encode('UTF-8'))
 
         with open(sanitize(endpoint,
-                           '/query?f=json&objectIds=2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=OBJECTID,pk,cnt,name,name2,num_char&returnM=false&returnZ=false'),
+                           '/query?f=json&objectIds=2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=*&returnM=false&returnZ=false'),
                   'wb') as f:
             f.write("""
         {
@@ -454,7 +454,7 @@ class TestPyQgsAFSProvider(unittest.TestCase, ProviderTestCase):
         }
         """.encode('UTF-8'))
 
-        with open(sanitize(endpoint, '/query?f=json&objectIds=5,3,1,2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=OBJECTID1,pk,cnt&returnM=false&returnZ=false'), 'wb') as f:
+        with open(sanitize(endpoint, '/query?f=json&objectIds=5,3,1,2,4&inSR=4326&outSR=4326&returnGeometry=true&outFields=*&returnM=false&returnZ=false'), 'wb') as f:
             f.write("""
         {
          "displayFieldName": "LABEL",
@@ -529,7 +529,7 @@ class TestPyQgsAFSProvider(unittest.TestCase, ProviderTestCase):
 
         self.assertTrue(vl.isValid())
         with open(sanitize(endpoint,
-                           '/query?f=json&objectIds=1,2&inSR=4326&outSR=4326&returnGeometry=true&outFields=OBJECTID,pk,dt&returnM=false&returnZ=false'), 'wb') as f:
+                           '/query?f=json&objectIds=1,2&inSR=4326&outSR=4326&returnGeometry=true&outFields=*&returnM=false&returnZ=false'), 'wb') as f:
             f.write("""
         {
          "displayFieldName": "name",
@@ -782,7 +782,7 @@ class TestPyQgsAFSProvider(unittest.TestCase, ProviderTestCase):
 
         self.assertTrue(vl.isValid())
         with open(sanitize(endpoint,
-                           '/query?f=json&objectIds=1,2,3&inSR=4326&outSR=4326&returnGeometry=true&outFields=OBJECTID&returnM=false&returnZ=false'), 'wb') as f:
+                           '/query?f=json&objectIds=1,2,3&inSR=4326&outSR=4326&returnGeometry=true&outFields=*&returnM=false&returnZ=false'), 'wb') as f:
             f.write("""
         {
          "displayFieldName": "name",
diff --git a/tests/src/python/test_provider_db2.py b/tests/src/python/test_provider_db2.py
index d8432d7674..1a173d9e5e 100644
--- a/tests/src/python/test_provider_db2.py
+++ b/tests/src/python/test_provider_db2.py
@@ -10,7 +10,7 @@ __author__ = 'David Adler'
 __date__ = '2016-03-01'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_provider_gdal.py b/tests/src/python/test_provider_gdal.py
index 269c07074e..a9302b889b 100644
--- a/tests/src/python/test_provider_gdal.py
+++ b/tests/src/python/test_provider_gdal.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2018-30-10'
 __copyright__ = 'Copyright 2018, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsProviderRegistry,
                        QgsDataProvider)
diff --git a/tests/src/python/test_provider_memory.py b/tests/src/python/test_provider_memory.py
index 680f48647c..f49fa37483 100644
--- a/tests/src/python/test_provider_memory.py
+++ b/tests/src/python/test_provider_memory.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '2015-04-23'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (
diff --git a/tests/src/python/test_provider_mssql.py b/tests/src/python/test_provider_mssql.py
index 0b55eaed5b..cfae5a4887 100644
--- a/tests/src/python/test_provider_mssql.py
+++ b/tests/src/python/test_provider_mssql.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2015-12-07'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_provider_ogr.py b/tests/src/python/test_provider_ogr.py
index ca28880d52..4ebde45eb2 100644
--- a/tests/src/python/test_provider_ogr.py
+++ b/tests/src/python/test_provider_ogr.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-04-11'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import shutil
diff --git a/tests/src/python/test_provider_ogr_gpkg.py b/tests/src/python/test_provider_ogr_gpkg.py
index 369887577d..58922b95fa 100644
--- a/tests/src/python/test_provider_ogr_gpkg.py
+++ b/tests/src/python/test_provider_ogr_gpkg.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-04-21'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
diff --git a/tests/src/python/test_provider_ogr_sqlite.py b/tests/src/python/test_provider_ogr_sqlite.py
index 295017c450..f804a03b7a 100644
--- a/tests/src/python/test_provider_ogr_sqlite.py
+++ b/tests/src/python/test_provider_ogr_sqlite.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-06-01'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_provider_oracle.py b/tests/src/python/test_provider_oracle.py
index 06f41849f4..abccb32424 100644
--- a/tests/src/python/test_provider_oracle.py
+++ b/tests/src/python/test_provider_oracle.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-07-06'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_provider_postgres.py b/tests/src/python/test_provider_postgres.py
index 376d4bf957..f72fce962f 100644
--- a/tests/src/python/test_provider_postgres.py
+++ b/tests/src/python/test_provider_postgres.py
@@ -19,7 +19,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '2015-04-23'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import psycopg2
diff --git a/tests/src/python/test_provider_python.py b/tests/src/python/test_provider_python.py
index 3b7ed30cf4..320720f7e4 100644
--- a/tests/src/python/test_provider_python.py
+++ b/tests/src/python/test_provider_python.py
@@ -10,7 +10,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '2018-03-18'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # -*- coding: utf-8 -*-
 """QGIS Unit tests for the py layerprovider.
@@ -24,7 +24,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '2015-04-23'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/tests/src/python/test_provider_shapefile.py b/tests/src/python/test_provider_shapefile.py
index 493ccb731c..f714e2d8cb 100644
--- a/tests/src/python/test_provider_shapefile.py
+++ b/tests/src/python/test_provider_shapefile.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '2015-04-23'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import re
@@ -21,7 +21,7 @@ import osgeo.gdal
 import osgeo.ogr
 import sys
 
-from qgis.core import QgsSettings, QgsFeature, QgsField, QgsGeometry, QgsVectorLayer, QgsFeatureRequest, QgsVectorDataProvider
+from qgis.core import QgsSettings, QgsFeature, QgsField, QgsGeometry, QgsVectorLayer, QgsFeatureRequest, QgsVectorDataProvider, QgsWkbTypes
 from qgis.PyQt.QtCore import QVariant
 from qgis.testing import start_app, unittest
 from utilities import unitTestDataPath
@@ -703,6 +703,18 @@ class TestPyQgsShapefileProvider(unittest.TestCase, ProviderTestCase):
         self.assertEqual(_lessdigits(subSet_vl.extent().toString()), filtered_extent)
         self.assertNotEqual(_lessdigits(subSet_vl.extent().toString()), unfiltered_extent)
 
+    def testMultipatch(self):
+        """Check that we can deal with multipatch shapefiles, returned natively by OGR as GeometryCollection of TIN"""
+
+        testPath = TEST_DATA_DIR + '/' + 'multipatch.shp'
+        vl = QgsVectorLayer(testPath, 'test', 'ogr')
+        self.assertTrue(vl.isValid())
+        self.assertEqual(vl.wkbType(), QgsWkbTypes.MultiPolygonZ)
+        f = next(vl.getFeatures())
+        self.assertEqual(f.geometry().wkbType(), QgsWkbTypes.MultiPolygonZ)
+        self.assertEqual(f.geometry().constGet().asWkt(),
+                         'MultiPolygonZ (((0 0 0, 0 1 0, 1 1 0, 0 0 0)),((0 0 0, 1 1 0, 1 0 0, 0 0 0)),((0 0 0, 0 -1 0, 1 -1 0, 0 0 0)),((0 0 0, 1 -1 0, 1 0 0, 0 0 0)))')
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_provider_spatialite.py b/tests/src/python/test_provider_spatialite.py
index 84f6744b37..7cf1b4df65 100644
--- a/tests/src/python/test_provider_spatialite.py
+++ b/tests/src/python/test_provider_spatialite.py
@@ -10,7 +10,7 @@ __author__ = 'Vincent Mora'
 __date__ = '09/07/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_provider_tabfile.py b/tests/src/python/test_provider_tabfile.py
index 3d4e2dc928..98ea887704 100644
--- a/tests/src/python/test_provider_tabfile.py
+++ b/tests/src/python/test_provider_tabfile.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-01-28'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import tempfile
diff --git a/tests/src/python/test_provider_virtual.py b/tests/src/python/test_provider_virtual.py
index eaab23150b..5f46758931 100644
--- a/tests/src/python/test_provider_virtual.py
+++ b/tests/src/python/test_provider_virtual.py
@@ -10,7 +10,7 @@ __author__ = 'Hugo Mercier'
 __date__ = '26/11/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_provider_wfs.py b/tests/src/python/test_provider_wfs.py
index 2c0c851bf6..6d873e1c56 100644
--- a/tests/src/python/test_provider_wfs.py
+++ b/tests/src/python/test_provider_wfs.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-03-25'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import hashlib
 import os
@@ -109,7 +109,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -140,7 +140,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         assert cls.vl.isValid()
         cls.source = cls.vl.dataProvider()
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -201,7 +201,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&RESULTTYPE=hits'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&RESULTTYPE=hits'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -210,7 +210,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
                        numberMatched="5" numberReturned="0" timeStamp="2016-03-25T14:51:48.998Z">
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:And>
   <fes:PropertyIsGreaterThan>
    <fes:ValueReference>cnt</fes:ValueReference>
@@ -230,7 +230,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
                        numberMatched="3" numberReturned="0" timeStamp="2016-03-25T14:51:48.998Z">
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:And>
   <fes:PropertyIsGreaterThan>
    <fes:ValueReference>cnt</fes:ValueReference>
@@ -282,7 +282,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:And>
   <fes:PropertyIsGreaterThan>
    <fes:ValueReference>cnt</fes:ValueReference>
@@ -302,7 +302,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
                        numberMatched="2" numberReturned="0" timeStamp="2016-03-25T14:51:48.998Z">
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:And>
   <fes:PropertyIsGreaterThan>
    <fes:ValueReference>cnt</fes:ValueReference>
@@ -343,7 +343,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:PropertyIsEqualTo>
   <fes:ValueReference>name</fes:ValueReference>
   <fes:Literal>Apple</fes:Literal>
@@ -357,7 +357,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
                        numberMatched="1" numberReturned="0" timeStamp="2016-03-25T14:51:48.998Z">
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:PropertyIsEqualTo>
   <fes:ValueReference>name</fes:ValueReference>
   <fes:Literal>Apple</fes:Literal>
@@ -383,7 +383,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:PropertyIsEqualTo>
   <fes:ValueReference>name</fes:ValueReference>
   <fes:Literal>AppleBearOrangePear</fes:Literal>
@@ -397,7 +397,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
                        numberMatched="0" numberReturned="0" timeStamp="2016-03-25T14:51:48.998Z">
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:PropertyIsEqualTo>
   <fes:ValueReference>name</fes:ValueReference>
   <fes:Literal>AppleBearOrangePear</fes:Literal>
@@ -1030,7 +1030,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -1048,7 +1048,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </xsd:schema>
 """.encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1067,7 +1067,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         self.assertTrue(vl.isValid())
         self.assertEqual(vl.wkbType(), QgsWkbTypes.Point)
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=1&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=1&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1081,7 +1081,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1093,9 +1093,9 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         self.assertEqual(values, [1, 2])
 
         # Suppress GetFeature responses to demonstrate that the cache is used
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=1&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=1&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
 
         values = [f['id'] for f in vl.getFeatures()]
         self.assertEqual(values, [1, 2])
@@ -1111,7 +1111,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         vl.dataProvider().reloadData()
 
         # Hits working
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&RESULTTYPE=hits'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&RESULTTYPE=hits'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1154,7 +1154,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -1177,7 +1177,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         self.assertTrue(vl.isValid())
         self.assertEqual(vl.wkbType(), QgsWkbTypes.Point)
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=2&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=2&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1195,7 +1195,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1212,15 +1212,15 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         values = [f['id'] for f in vl.getFeatures()]
         self.assertEqual(values, [1, 2, 3])
 
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=2&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=2&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=2&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
 
         # user maxNumFeatures < user pageSize < server pagesize
         vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' maxNumFeatures='1' pageSize='2'", 'test', 'WFS')
         self.assertTrue(vl.isValid())
         self.assertEqual(vl.wkbType(), QgsWkbTypes.Point)
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1237,14 +1237,14 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         values = [f['id'] for f in vl.getFeatures()]
         self.assertEqual(values, [1])
 
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
 
         # user user pageSize > server pagesize
         vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' pageSize='100'", 'test', 'WFS')
         self.assertTrue(vl.isValid())
         self.assertEqual(vl.wkbType(), QgsWkbTypes.Point)
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=10&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=10&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1261,13 +1261,13 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         values = [f['id'] for f in vl.getFeatures()]
         self.assertEqual(values, [1])
 
-        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=10&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
+        os.unlink(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=10&SRSNAME=urn:ogc:def:crs:EPSG::4326'))
 
         vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' pagingEnabled='false' maxNumFeatures='3'", 'test', 'WFS')
         self.assertTrue(vl.isValid())
         self.assertEqual(vl.wkbType(), QgsWkbTypes.Point)
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&COUNT=3&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&COUNT=3&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1609,7 +1609,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -1626,7 +1626,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </xsd:schema>
 """.encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs/2.0"
                        xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -1888,10 +1888,10 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   <xsd:element name="othertypename" substitutionGroup="gml:_Feature" type="my:othertypenameType"/>
 </xsd:schema>
 """
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename,my:othertypename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename,my:othertypename&TYPENAME=my:typename,my:othertypename'), 'wb') as f:
             f.write(schema.encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename,my:othertypename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename,my:othertypename&TYPENAME=my:typename,my:othertypename&SRSNAME=urn:ogc:def:crs:EPSG::4326&FILTER=<fes:Filter xmlns:fes="http://www.opengis.net/fes/2.0">
  <fes:And>
   <fes:PropertyIsEqualTo>
    <fes:ValueReference>my:typename/id</fes:ValueReference>
@@ -1954,7 +1954,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 
         # main table not appearing in first
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:othertypename,my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:othertypename,my:typename&TYPENAME=my:othertypename,my:typename'), 'wb') as f:
             f.write(schema.encode('UTF-8'))
 
         vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' version='2.0.0' sql=SELECT * FROM othertypename o, typename WHERE typename.id = o.main_id AND typename.id > 0 ORDER BY typename.id DESC", 'test', 'WFS')
@@ -2004,7 +2004,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         self.assertEqual(len(fields), 1, fields)
         self.assertEqual(fields[0].name(), 'id')
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write(schema.encode('UTF-8'))
 
         # Duplicate fields
@@ -2208,7 +2208,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
             f.write(schema.encode('UTF-8'))
         with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.1.0&TYPENAME=my:typename'), 'wb') as f:
             f.write(schema.encode('UTF-8'))
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write(schema.encode('UTF-8'))
 
         # Existing function and validation enabled
@@ -2273,7 +2273,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml"/>
@@ -2293,7 +2293,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </xsd:schema>
 """.encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2390,7 +2390,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml"/>
@@ -2408,7 +2408,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </xsd:schema>
 """.encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2438,7 +2438,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         self.assertTrue(vl.isValid())
 
         # First request that will be attempted
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&BBOX=-0.125,-0.125,1.125,1.125,urn:ogc:def:crs:EPSG::4326"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::4326&BBOX=-0.125,-0.125,1.125,1.125,urn:ogc:def:crs:EPSG::4326"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2447,7 +2447,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
         # And fallback
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&COUNT=1"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&COUNT=1"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2498,7 +2498,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml"/>
@@ -2516,7 +2516,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </xsd:schema>
 """.encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=EPSG:32631"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=0&COUNT=1&SRSNAME=EPSG:32631"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2531,7 +2531,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
         # Simulate improper paging support by returning same result set whatever the STARTINDEX is
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&STARTINDEX=1&COUNT=1&SRSNAME=EPSG:32631"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&STARTINDEX=1&COUNT=1&SRSNAME=EPSG:32631"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2545,7 +2545,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=EPSG:32631"""), 'wb') as f:
+        with open(sanitize(endpoint, """?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=EPSG:32631"""), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -2794,7 +2794,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -2870,7 +2870,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".format(endpoint=endpoint).encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -2986,7 +2986,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&NAMESPACES=xmlns(my,http://my)&TYPENAME=my:typename&NAMESPACE=xmlns(my,http://my)'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml"/>
@@ -3007,7 +3007,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         self.assertTrue(vl.isValid())
         self.assertEqual(len(vl.fields()), 1)
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::32631&NAMESPACES=xmlns(my,http://my)'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename&SRSNAME=urn:ogc:def:crs:EPSG::32631&NAMESPACES=xmlns(my,http://my)&NAMESPACE=xmlns(my,http://my)'), 'wb') as f:
             f.write("""
 <wfs:FeatureCollection
                        xmlns:wfs="http://www.opengis.net/wfs/2.0"
@@ -3318,7 +3318,7 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=EC422'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=EC422&TYPENAME=EC422'), 'wb') as f:
             f.write("""<schema xmlns="http://www.w3.org/2001/XMLSchema"
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:gml="http://www.opengis.net/gml/3.2"
@@ -3494,10 +3494,10 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
   </wfs:member>
 </wfs:FeatureCollection>"""
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=EC422&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=EC422&TYPENAME=EC422&COUNT=1&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write(feature_content.encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=EC422&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&TYPENAMES=EC422&TYPENAME=EC422&SRSNAME=urn:ogc:def:crs:EPSG::4326'), 'wb') as f:
             f.write(feature_content.encode('UTF-8'))
 
         vl = QgsVectorLayer("url='http://" + endpoint + "' version='2.0.0' typename='EC422'", 'test', 'WFS')
@@ -3509,58 +3509,6 @@ class TestPyQgsWFSProvider(unittest.TestCase, ProviderTestCase):
         geom_string = re.sub(r'\.\d+', '', geom_string)[:100]
         self.assertEqual(geom_string, "LineString (9540051 5997366, 9539934 5997127, 9539822 5996862, 9539504 5996097, 9539529 5996093, 953")
 
-    def testWfs20DescribeFeatureTypePluralForm(self):
-        """Specs are inconsistent and some 2.0 servers use the TYPENAMES plural form"""
-
-        endpoint = self.__class__.basetestpath + '/fake_qgis_http_endpoint_WFS_2.0_describe_typenames'
-
-        with open(sanitize(endpoint, '?SERVICE=WFS?REQUEST=GetCapabilities?ACCEPTVERSIONS=2.0.0,1.1.0,1.0.0'), 'wb') as f:
-            f.write("""
-<wfs:WFS_Capabilities version="2.0.0" xmlns="http://www.opengis.net/wfs/2.0" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://schemas.opengis.net/gml/3.2" xmlns:fes="http://www.opengis.net/fes/2.0">
-  <FeatureTypeList>
-    <FeatureType>
-      <Name>my:typename</Name>
-      <DefaultCRS>urn:ogc:def:crs:EPSG::4326</DefaultCRS>
-    </FeatureType>
-  </FeatureTypeList>
-</wfs:WFS_Capabilities>""".encode('UTF-8'))
-
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
-            f.write("""
-<?xml version="1.0"?>
-<ExceptionReport
-        version="2.0.0"
-        xmlns="http://www.opengis.net/ows/1.1"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="http://www.opengis.net/ows/1.1
-http://schemas.opengis.net/ows/1.1.0/owsAll.xsd">
-        <Exception exceptionCode="MissingParameterValue" locator="">
-            <ExceptionText><![CDATA[Missing typeNames parameter]]></ExceptionText>
-        </Exception>
-</ExceptionReport
-""".encode('UTF-8'))
-
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename'), 'wb') as f:
-            f.write("""
-<xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
-  <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
-  <xsd:complexType name="typenameType">
-    <xsd:complexContent>
-      <xsd:extension base="gml:AbstractFeatureType">
-        <xsd:sequence>
-          <xsd:element maxOccurs="1" minOccurs="0" name="geometryProperty" nillable="true" type="gml:PointPropertyType"/>
-        </xsd:sequence>
-      </xsd:extension>
-    </xsd:complexContent>
-  </xsd:complexType>
-  <xsd:element name="typename" substitutionGroup="gml:_Feature" type="my:typenameType"/>
-</xsd:schema>
-""".encode('UTF-8'))
-
-        # Create test layer
-        vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename'", 'test', 'WFS')
-        self.assertTrue(vl.isValid())
-
     def testDescribeFeatureTypeWithSingleInclude(self):
         """Test DescribeFeatureType response which has a single <include> child node"""
 
@@ -3577,7 +3525,7 @@ http://schemas.opengis.net/ows/1.1.0/owsAll.xsd">
   </FeatureTypeList>
 </wfs:WFS_Capabilities>""".encode('UTF-8'))
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write(("""
 <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <include schemaLocation="%s"/>
@@ -4020,6 +3968,100 @@ http://schemas.opengis.net/ows/1.1.0/owsAll.xsd">
         req.setExpressionContext(ctx)
         qgis_feat = next(vl.getFeatures(req))
 
+    def testWFSFieldWithSameNameButDifferentCase(self):
+        """Test a layer with field foo and FOO """
+
+        endpoint = self.__class__.basetestpath + '/fake_qgis_http_endpoint_FieldWithSameNameButDifferentCase'
+
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetCapabilities&VERSION=1.0.0'), 'wb') as f:
+            f.write("""
+<WFS_Capabilities version="1.0.0" xmlns="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc">
+  <FeatureTypeList>
+    <FeatureType>
+      <Name>my:typename</Name>
+      <Title>Title</Title>
+      <Abstract>Abstract</Abstract>
+      <SRS>EPSG:32631</SRS>
+      <!-- in WFS 1.0, LatLongBoundingBox is in SRS units, not necessarily lat/long... -->
+      <LatLongBoundingBox minx="400000" miny="5400000" maxx="450000" maxy="5500000"/>
+    </FeatureType>
+  </FeatureTypeList>
+</WFS_Capabilities>""".encode('UTF-8'))
+
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.0.0&TYPENAME=my:typename'), 'wb') as f:
+            f.write("""
+<xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
+  <xsd:import namespace="http://www.opengis.net/gml"/>
+  <xsd:complexType name="typenameType">
+    <xsd:complexContent>
+      <xsd:extension base="gml:AbstractFeatureType">
+        <xsd:sequence>
+          <xsd:element maxOccurs="1" minOccurs="0" name="foo" nillable="true" type="xsd:int"/>
+          <xsd:element maxOccurs="1" minOccurs="0" name="FOO" nillable="true" type="xsd:int"/>
+          <xsd:element maxOccurs="1" minOccurs="0" name="FOO2" nillable="true" type="xsd:int"/>
+          <xsd:element maxOccurs="1" minOccurs="0" name="geometry" nillable="true" type="gml:PointPropertyType"/>
+        </xsd:sequence>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="typename" substitutionGroup="gml:_Feature" type="my:typenameType"/>
+</xsd:schema>
+""".encode('UTF-8'))
+
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=GetFeature&VERSION=1.0.0&TYPENAME=my:typename&SRSNAME=EPSG:32631'), 'wb') as f:
+            f.write("""
+  <wfs:FeatureCollection
+                      xmlns:wfs="http://www.opengis.net/wfs"
+                      xmlns:gml="http://www.opengis.net/gml"
+                      xmlns:my="http://my">
+  <gml:boundedBy><gml:null>unknown</gml:null></gml:boundedBy>
+  <gml:featureMember>
+  <my:typename fid="typename.0">
+    <my:foo>1</my:foo>
+    <my:FOO>2</my:FOO>
+    <my:FOO2>3</my:FOO2>
+  </my:typename>
+  </gml:featureMember>
+  </wfs:FeatureCollection>""".encode('UTF-8'))
+
+        vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' version='1.0.0'", 'test', 'WFS')
+        self.assertTrue(vl.isValid())
+        self.assertEqual(len(vl.fields()), 3)
+
+        values = [f['foo'] for f in vl.getFeatures()]
+        self.assertEqual(values, [1])
+
+        values = [f['FOO'] for f in vl.getFeatures()]
+        self.assertEqual(values, [2])
+
+        values = [f['FOO2'] for f in vl.getFeatures()]
+        self.assertEqual(values, [3])
+
+        # Also test that on file iterator works
+        os.environ['QGIS_WFS_ITERATOR_TRANSFER_THRESHOLD'] = '0'
+
+        vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' version='1.0.0'", 'test', 'WFS')
+        values = [f['foo'] for f in vl.getFeatures()]
+        self.assertEqual(values, [1])
+
+        values = [f['FOO'] for f in vl.getFeatures()]
+        self.assertEqual(values, [2])
+
+        values = [f['FOO2'] for f in vl.getFeatures()]
+        self.assertEqual(values, [3])
+
+        del os.environ['QGIS_WFS_ITERATOR_TRANSFER_THRESHOLD']
+
+        vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' version='1.0.0'", 'test', 'WFS')
+        request = QgsFeatureRequest().setFilterExpression('FOO = 2')
+        values = [f['FOO'] for f in vl.getFeatures(request)]
+        self.assertEqual(values, [2])
+
+        vl = QgsVectorLayer("url='http://" + endpoint + "' typename='my:typename' version='1.0.0'", 'test', 'WFS')
+        request = QgsFeatureRequest().setSubsetOfAttributes(['FOO'], vl.fields())
+        values = [f['FOO'] for f in vl.getFeatures(request)]
+        self.assertEqual(values, [2])
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_provider_wfs_gui.py b/tests/src/python/test_provider_wfs_gui.py
index 6404790702..1b851432d0 100644
--- a/tests/src/python/test_provider_wfs_gui.py
+++ b/tests/src/python/test_provider_wfs_gui.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-03-25'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import hashlib
 import sys
@@ -219,7 +219,7 @@ class TestPyQgsWFSProviderGUI(unittest.TestCase):
         self.addWfsLayer_layer_name = None
         main_dialog.addVectorLayer.connect(self.slotAddWfsLayer)
         QTest.mouseClick(buttonAdd, Qt.LeftButton)
-        self.assertEqual(self.addWfsLayer_uri, ' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' table="" sql=')
+        self.assertEqual(self.addWfsLayer_uri, ' pagingEnabled=\'true\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' table="" sql=')
         self.assertEqual(self.addWfsLayer_layer_name, 'my:typename')
 
         # Click on Build Query
@@ -235,7 +235,7 @@ class TestPyQgsWFSProviderGUI(unittest.TestCase):
 
         # Click again but with valid DescribeFeatureType
 
-        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAME=my:typename'), 'wb') as f:
+        with open(sanitize(endpoint, '?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0&TYPENAMES=my:typename&TYPENAME=my:typename'), 'wb') as f:
             f.write("""
 <xsd:schema xmlns:my="http://my" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://my">
   <xsd:import namespace="http://www.opengis.net/gml/3.2"/>
@@ -292,7 +292,7 @@ class TestPyQgsWFSProviderGUI(unittest.TestCase):
         self.addWfsLayer_layer_name = None
         main_dialog.addVectorLayer.connect(self.slotAddWfsLayer)
         QTest.mouseClick(buttonAdd, Qt.LeftButton)
-        self.assertEqual(self.addWfsLayer_uri, ' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' table="" sql=SELECT * FROM typename WHERE 1 = 1')
+        self.assertEqual(self.addWfsLayer_uri, ' pagingEnabled=\'true\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' table="" sql=SELECT * FROM typename WHERE 1 = 1')
         self.assertEqual(self.addWfsLayer_layer_name, 'my:typename')
 
         # main_dialog.setProperty("hideDialogs", None)
diff --git a/tests/src/python/test_python_repr.py b/tests/src/python/test_python_repr.py
index 0813c6813c..d9e323c3f3 100644
--- a/tests/src/python/test_python_repr.py
+++ b/tests/src/python/test_python_repr.py
@@ -10,7 +10,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '05.06.2018'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgis_local_server.py b/tests/src/python/test_qgis_local_server.py
index 7dbe49874a..cdb8cfb91e 100644
--- a/tests/src/python/test_qgis_local_server.py
+++ b/tests/src/python/test_qgis_local_server.py
@@ -17,7 +17,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '2014/02/16'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import sys
diff --git a/tests/src/python/test_qgsactionmanager.py b/tests/src/python/test_qgsactionmanager.py
index 92b66dbeec..6605051695 100644
--- a/tests/src/python/test_qgsactionmanager.py
+++ b/tests/src/python/test_qgsactionmanager.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '28/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsaggregatecalculator.py b/tests/src/python/test_qgsaggregatecalculator.py
index 286fff7ee9..6f7f427758 100644
--- a/tests/src/python/test_qgsaggregatecalculator.py
+++ b/tests/src/python/test_qgsaggregatecalculator.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '16/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsannotation.py b/tests/src/python/test_qgsannotation.py
index e6c94fcb67..1896555189 100644
--- a/tests/src/python/test_qgsannotation.py
+++ b/tests/src/python/test_qgsannotation.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '24/1/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsapplication.py b/tests/src/python/test_qgsapplication.py
index e8316c0e5b..44cb821391 100644
--- a/tests/src/python/test_qgsapplication.py
+++ b/tests/src/python/test_qgsapplication.py
@@ -9,7 +9,7 @@ __author__ = 'Tim Sutton (tim@linfiniti.com)'
 __date__ = '20/01/2011'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.testing import start_app, unittest
diff --git a/tests/src/python/test_qgsappstartup.py b/tests/src/python/test_qgsappstartup.py
index c8ddfa476b..18933f827f 100644
--- a/tests/src/python/test_qgsappstartup.py
+++ b/tests/src/python/test_qgsappstartup.py
@@ -12,7 +12,7 @@ __author__ = 'Hugo Mercier (hugo.mercier@oslandia.com)'
 __date__ = '17/07/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import sys
 import os
diff --git a/tests/src/python/test_qgsarrowsymbollayer.py b/tests/src/python/test_qgsarrowsymbollayer.py
index 7501df1eb8..73d5d64647 100644
--- a/tests/src/python/test_qgsarrowsymbollayer.py
+++ b/tests/src/python/test_qgsarrowsymbollayer.py
@@ -21,7 +21,7 @@ __author__ = 'Hugo Mercier'
 __date__ = 'March 2016'
 __copyright__ = '(C) 2016, Hugo Mercier'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsattributeform.py b/tests/src/python/test_qgsattributeform.py
new file mode 100644
index 0000000000..be7f69da39
--- /dev/null
+++ b/tests/src/python/test_qgsattributeform.py
@@ -0,0 +1,120 @@
+# -*- coding: utf-8 -*-
+"""QGIS Unit tests for the attribute form
+
+
+Run with ctest -V -R PyQgsAttributeForm
+
+.. note:: This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+"""
+__author__ = 'Alessandro Pasotti'
+__date__ = '2019-06-06'
+__copyright__ = 'Copyright 2019, The QGIS Project'
+
+
+from qgis.testing import start_app, unittest
+from qgis.core import (
+    QgsFields,
+    QgsVectorLayer,
+    QgsFeature,
+    QgsEditorWidgetSetup,
+    QgsEditFormConfig,
+    QgsAttributeEditorElement,
+)
+from qgis.gui import (
+    QgsAttributeForm,
+    QgsGui,
+    QgsEditorWidgetWrapper,
+)
+
+
+QGISAPP = start_app()
+
+
+class TestQgsAttributeForm(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        QgsGui.editorWidgetRegistry().initEditors()
+
+    @classmethod
+    def createLayerWithOnePoint(cls, field_type):
+        layer = QgsVectorLayer("Point?field=fld:%s" % field_type,
+                               "vl", "memory")
+        pr = layer.dataProvider()
+        f = QgsFeature()
+        assert pr.addFeatures([f])
+        assert layer.featureCount() == 1
+        return layer
+
+    @classmethod
+    def createFormWithDuplicateWidget(cls, vl, field_type, widget_type):
+        """Creates a form with two identical widgets for the same field"""
+
+        config = vl.editFormConfig()
+        config.setLayout(QgsEditFormConfig.TabLayout)
+        element = config.tabs()[0]
+        element2 = element.clone(element)
+        config.addTab(element2)
+        vl.setEditFormConfig(config)
+        vl.setEditorWidgetSetup(0, QgsEditorWidgetSetup(widget_type, {}))
+        form = QgsAttributeForm(vl, next(vl.getFeatures()))
+        assert (form.editable())
+        return form
+
+    @classmethod
+    def get_widgets_for_field(cls, vl):
+        """Get compatible widget names"""
+
+        return [k for k, v in QgsGui.editorWidgetRegistry().factories().items() if v.supportsField(vl, 0)]
+
+    @classmethod
+    def checkForm(cls, field_type, value):
+        """Creates a vector layer and an associated form with two identical widgets for the same field and test it with NULL and after setting a value
+        """
+
+        vl = cls.createLayerWithOnePoint(field_type)
+        assert (vl.startEditing())
+        for widget_type in cls.get_widgets_for_field(vl):
+            form = cls.createFormWithDuplicateWidget(vl, field_type, widget_type)
+            vl.changeAttributeValue(1, 0, value)
+            form.setFeature(next(vl.getFeatures()))
+
+    def test_duplicated_widgets(self):
+        """
+        Note: this crashed two times for datetime (see GH #29937):
+
+        - first crash with initial NULL values, because widget's clear() triggered changed()
+        - second crash when setting a value, because setDateTime() triggered changed()
+
+        There are no assertions in this test because we are looking for a crash.
+        """
+
+        field_types = {
+            'integer': 123,
+            'double': 123.45,
+            'string': 'lorem ipsum',
+            'date': '2019-01-01',
+            'time': '12:12:12',
+            'datetime': '2019-01-01',
+            'int2': 123,
+            'int4': 123,
+            'int8': 123,
+            'numeric': 123.45,
+            'decimal': 123.45,
+            'real': 123.45,
+            'double precision': 123.45,
+            'text': 'lorem ipsum',
+            'bool': True,
+            #'binary'
+        }
+
+        for field_type, value in field_types.items():
+            self.checkForm(field_type, value)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/tests/src/python/test_qgsattributeformeditorwidget.py b/tests/src/python/test_qgsattributeformeditorwidget.py
index 35488f231c..c446e1e59e 100644
--- a/tests/src/python/test_qgsattributeformeditorwidget.py
+++ b/tests/src/python/test_qgsattributeformeditorwidget.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-05'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsattributetableconfig.py b/tests/src/python/test_qgsattributetableconfig.py
index 22b2e76280..ac66761848 100644
--- a/tests/src/python/test_qgsattributetableconfig.py
+++ b/tests/src/python/test_qgsattributetableconfig.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '07/06/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsattributetablemodel.py b/tests/src/python/test_qgsattributetablemodel.py
index aa442b2c44..d205e60063 100644
--- a/tests/src/python/test_qgsattributetablemodel.py
+++ b/tests/src/python/test_qgsattributetablemodel.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '27/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.gui import (
     QgsAttributeTableModel,
diff --git a/tests/src/python/test_qgsauthsystem.py b/tests/src/python/test_qgsauthsystem.py
index 5b5c4e0c13..74860cbb22 100644
--- a/tests/src/python/test_qgsauthsystem.py
+++ b/tests/src/python/test_qgsauthsystem.py
@@ -12,7 +12,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '2014/11/05'
 __copyright__ = 'Copyright 2014, Boundless Spatial, Inc.'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import tempfile
diff --git a/tests/src/python/test_qgsauxiliarystorage.py b/tests/src/python/test_qgsauxiliarystorage.py
index 07eae67eb3..df2c35a65b 100644
--- a/tests/src/python/test_qgsauxiliarystorage.py
+++ b/tests/src/python/test_qgsauxiliarystorage.py
@@ -10,7 +10,7 @@ __author__ = 'Paul Blottiere'
 __date__ = '06/09/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsbearingutils.py b/tests/src/python/test_qgsbearingutils.py
index 5d398ec6ea..8f76a52d9a 100644
--- a/tests/src/python/test_qgsbearingutils.py
+++ b/tests/src/python/test_qgsbearingutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsblendmodes.py b/tests/src/python/test_qgsblendmodes.py
index 74f451ba8e..968e43fa57 100644
--- a/tests/src/python/test_qgsblendmodes.py
+++ b/tests/src/python/test_qgsblendmodes.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'May 2013'
 __copyright__ = '(C) 2013, Nyall Dawson, Massimo Endrighi'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsbox3d.py b/tests/src/python/test_qgsbox3d.py
index 6d6401408f..51f2f63e58 100644
--- a/tests/src/python/test_qgsbox3d.py
+++ b/tests/src/python/test_qgsbox3d.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgscategorizedsymbolrenderer.py b/tests/src/python/test_qgscategorizedsymbolrenderer.py
index 6bc27cfa10..559f0a8898 100644
--- a/tests/src/python/test_qgscategorizedsymbolrenderer.py
+++ b/tests/src/python/test_qgscategorizedsymbolrenderer.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2/12/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgscheckablecombobox.py b/tests/src/python/test_qgscheckablecombobox.py
index e56b35be00..32153d9cac 100644
--- a/tests/src/python/test_qgscheckablecombobox.py
+++ b/tests/src/python/test_qgscheckablecombobox.py
@@ -10,7 +10,7 @@ __author__ = 'Alexander Bruy'
 __date__ = '22/03/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgscolorbutton.py b/tests/src/python/test_qgscolorbutton.py
index 529dbe923f..7d6c187f25 100644
--- a/tests/src/python/test_qgscolorbutton.py
+++ b/tests/src/python/test_qgscolorbutton.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '25/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvectorcolorramp.py b/tests/src/python/test_qgscolorramp.py
similarity index 90%
rename from tests/src/python/test_qgsvectorcolorramp.py
rename to tests/src/python/test_qgscolorramp.py
index f228bb2a21..902da36f70 100644
--- a/tests/src/python/test_qgsvectorcolorramp.py
+++ b/tests/src/python/test_qgscolorramp.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-"""QGIS Unit tests for QgsVectorColorRamps.
+"""QGIS Unit tests for ColorRamps.
 
 .. note:: This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -9,8 +9,6 @@ the Free Software Foundation; either version 2 of the License, or
 __author__ = 'Nyall Dawson'
 __date__ = '2015-08'
 __copyright__ = 'Copyright 2015, The QGIS Project'
-# This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
 
 import qgis  # NOQA
 
@@ -19,14 +17,15 @@ from qgis.core import (QgsGradientColorRamp,
                        QgsLimitedRandomColorRamp,
                        QgsRandomColorRamp,
                        QgsColorBrewerColorRamp,
+                       QgsCptCityColorRamp,
                        QgsPresetSchemeColorRamp)
 from qgis.PyQt.QtGui import QColor, QGradient
 from qgis.testing import unittest
 
 
-class PyQgsVectorColorRamp(unittest.TestCase):
+class PyQgsColorRamp(unittest.TestCase):
 
-    def testQgsVectorGradientRampV2(self):
+    def testQgsGradientColorRamp(self):
         # test QgsGradientStop
         stop = QgsGradientStop(0.9, QColor(200, 150, 100))
         self.assertEqual(stop.offset, 0.9)
@@ -178,7 +177,16 @@ class PyQgsVectorColorRamp(unittest.TestCase):
         self.assertEqual(r.color(0.5), QColor(128, 128, 128))
         self.assertEqual(r.color(0.8), QColor(255, 255, 255))
 
-    def testQgsLimitedRandomColorRampV2(self):
+        # test invalid value range
+        r = QgsGradientColorRamp(color1=QColor(0, 0, 255), color2=QColor(0, 255, 0), discrete=False)
+        self.assertEqual(r.color(0), QColor(0, 0, 255))
+        self.assertEqual(r.color(1), QColor(0, 255, 0))
+        self.assertEqual(r.color(0.5).name(), QColor(0, 128, 128).name())
+        self.assertEqual(r.color(2), QColor(0, 255, 0))
+        self.assertEqual(r.color(-1), QColor(0, 0, 255))
+        self.assertEqual(r.color(float('nan')), QColor(0, 255, 0))
+
+    def testQgsLimitedRandomColorRamp(self):
         # test random color ramp
         r = QgsLimitedRandomColorRamp(5)
         self.assertEqual(r.type(), 'random')
@@ -258,7 +266,7 @@ class PyQgsVectorColorRamp(unittest.TestCase):
                 self.assertTrue(c.value() >= 150)
                 self.assertTrue(c.value() <= 180)
 
-    def testQgsRandomColorRampV2(self):
+    def testQgsRandomColorRamp(self):
         # test random colors
         r = QgsRandomColorRamp()
         self.assertEqual(r.type(), 'randomcolors')
@@ -332,7 +340,7 @@ class PyQgsVectorColorRamp(unittest.TestCase):
         self.assertEqual(r.color(0), QColor(0, 255, 0))
         self.assertEqual(r.color(1), QColor(255, 0, 0))
 
-    def testQgsColorBrewerColorRampV2(self):
+    def testQgsColorBrewerColorRamp(self):
         # test color brewer color ramps
         r = QgsColorBrewerColorRamp('OrRd', 6)
         self.assertEqual(r.type(), 'colorbrewer')
@@ -417,6 +425,35 @@ class PyQgsVectorColorRamp(unittest.TestCase):
         variants = QgsColorBrewerColorRamp.listSchemeVariants('Reds')
         self.assertEqual(variants, [3, 4, 5, 6, 7, 8, 9])
 
+        # test invalid value range
+        r = QgsColorBrewerColorRamp("Spectral", 5)
+        self.assertEqual(r.color(0), QColor(215, 25, 28))
+        self.assertEqual(r.color(1), QColor(43, 131, 186))
+        self.assertEqual(r.color(0.5), QColor(255, 255, 191))
+        self.assertFalse(r.color(2).isValid())
+        self.assertFalse(r.color(-1).isValid())
+        self.assertFalse(r.color(float('nan')).isValid())
+
+    def testCptCityColorRamp(self):
+        """Test Cpt-city color ramp"""
+        r = QgsCptCityColorRamp("cb/div/BrBG_", "05")
+        self.assertTrue(r)
+
+        # color scheme name
+        self.assertEqual(r.schemeName(), "cb/div/BrBG_")
+        self.assertEqual(r.variantName(), "05")
+
+        # number of colors
+        self.assertEqual(r.count(), 6)
+
+        # color for value
+        self.assertEqual(r.color(0), QColor(166, 97, 26))
+        self.assertEqual(r.color(1), QColor(1, 133, 113))
+        self.assertEqual(r.color(0.5), QColor(245, 245, 245))
+        self.assertEqual(r.color(2), QColor(1, 133, 113))
+        self.assertEqual(r.color(-1), QColor(166, 97, 26))
+        self.assertEqual(r.color(float('nan')), QColor(1, 133, 113))
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_qgscolorscheme.py b/tests/src/python/test_qgscolorscheme.py
index 0631546f59..856360b964 100644
--- a/tests/src/python/test_qgscolorscheme.py
+++ b/tests/src/python/test_qgscolorscheme.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '25/07/2014'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgscolorschemeregistry.py b/tests/src/python/test_qgscolorschemeregistry.py
index ba27da5a21..ce80633194 100644
--- a/tests/src/python/test_qgscolorschemeregistry.py
+++ b/tests/src/python/test_qgscolorschemeregistry.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '25/07/2014'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsconditionalstyle.py b/tests/src/python/test_qgsconditionalstyle.py
index c8b4c27d9e..4dda8d02f8 100644
--- a/tests/src/python/test_qgsconditionalstyle.py
+++ b/tests/src/python/test_qgsconditionalstyle.py
@@ -11,7 +11,7 @@ __author__ = 'Nathan.Woodrow'
 __date__ = '2015-08-11'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (QgsConditionalStyle,
                        QgsFeature,
diff --git a/tests/src/python/test_qgscoordinateformatter.py b/tests/src/python/test_qgscoordinateformatter.py
index 56225dd191..02438ba79b 100644
--- a/tests/src/python/test_qgscoordinateformatter.py
+++ b/tests/src/python/test_qgscoordinateformatter.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '25/07/2014'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis
 from qgis.testing import unittest
diff --git a/tests/src/python/test_qgscoordinatetransform.py b/tests/src/python/test_qgscoordinatetransform.py
index ccd944c617..5dfe8e69f2 100644
--- a/tests/src/python/test_qgscoordinatetransform.py
+++ b/tests/src/python/test_qgscoordinatetransform.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2012 by Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgscoordinatetransformcontext.py b/tests/src/python/test_qgscoordinatetransformcontext.py
index 83f7a77de0..393ceb8755 100644
--- a/tests/src/python/test_qgscoordinatetransformcontext.py
+++ b/tests/src/python/test_qgscoordinatetransformcontext.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11/5/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsdataitemproviderregistry.py b/tests/src/python/test_qgsdataitemproviderregistry.py
index f26a1080f8..b6c3f0ae07 100644
--- a/tests/src/python/test_qgsdataitemproviderregistry.py
+++ b/tests/src/python/test_qgsdataitemproviderregistry.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '27/10/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsdatetimeedit.py b/tests/src/python/test_qgsdatetimeedit.py
index 1eefb6e756..74d5ebfc92 100644
--- a/tests/src/python/test_qgsdatetimeedit.py
+++ b/tests/src/python/test_qgsdatetimeedit.py
@@ -10,7 +10,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '2018-01-04'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsdatetimestatisticalsummary.py b/tests/src/python/test_qgsdatetimestatisticalsummary.py
index 0e558c11b5..3cfd4c3011 100644
--- a/tests/src/python/test_qgsdatetimestatisticalsummary.py
+++ b/tests/src/python/test_qgsdatetimestatisticalsummary.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '07/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsdefaultvalue.py b/tests/src/python/test_qgsdefaultvalue.py
index 7e5ccbf39b..a0e068d4f4 100644
--- a/tests/src/python/test_qgsdefaultvalue.py
+++ b/tests/src/python/test_qgsdefaultvalue.py
@@ -11,7 +11,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '26.9.2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsdelimitedtextprovider.py b/tests/src/python/test_qgsdelimitedtextprovider.py
index 4bce472636..2f14e145fb 100644
--- a/tests/src/python/test_qgsdelimitedtextprovider.py
+++ b/tests/src/python/test_qgsdelimitedtextprovider.py
@@ -10,7 +10,7 @@ __author__ = 'Chris Crook'
 __date__ = '20/04/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 # This module provides unit test for the delimited text provider.  It uses data files in
 # the testdata/delimitedtext directory.
diff --git a/tests/src/python/test_qgsdelimitedtextprovider_wanted.py b/tests/src/python/test_qgsdelimitedtextprovider_wanted.py
index 1ae77c4b6c..ef5e8ad892 100644
--- a/tests/src/python/test_qgsdelimitedtextprovider_wanted.py
+++ b/tests/src/python/test_qgsdelimitedtextprovider_wanted.py
@@ -21,7 +21,7 @@ __author__ = 'Chris Crook'
 __date__ = 'May 2013'
 __copyright__ = '(C) 2013, Chris Crook'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 def test_002_load_csv_file():
diff --git a/tests/src/python/test_qgsdistancearea.py b/tests/src/python/test_qgsdistancearea.py
index fc183b9a20..de858f4cd1 100644
--- a/tests/src/python/test_qgsdistancearea.py
+++ b/tests/src/python/test_qgsdistancearea.py
@@ -10,7 +10,7 @@ __author__ = 'Jürgen E. Fischer'
 __date__ = '19/01/2014'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import math
diff --git a/tests/src/python/test_qgseditformconfig.py b/tests/src/python/test_qgseditformconfig.py
index 493bfa0669..d97e7864f5 100644
--- a/tests/src/python/test_qgseditformconfig.py
+++ b/tests/src/python/test_qgseditformconfig.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11/04/2017'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgseditwidgets.py b/tests/src/python/test_qgseditwidgets.py
index 71d6b782f9..43b8ce8100 100644
--- a/tests/src/python/test_qgseditwidgets.py
+++ b/tests/src/python/test_qgseditwidgets.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '20/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsellipsoidutils.py b/tests/src/python/test_qgsellipsoidutils.py
index 9fa523043d..9aa1581342 100644
--- a/tests/src/python/test_qgsellipsoidutils.py
+++ b/tests/src/python/test_qgsellipsoidutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/4/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsencodingselectiondialog.py b/tests/src/python/test_qgsencodingselectiondialog.py
index a8a4f592c5..319377997d 100644
--- a/tests/src/python/test_qgsencodingselectiondialog.py
+++ b/tests/src/python/test_qgsencodingselectiondialog.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '21/11/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsexpression.py b/tests/src/python/test_qgsexpression.py
index af3af32e49..39fc97cf2b 100644
--- a/tests/src/python/test_qgsexpression.py
+++ b/tests/src/python/test_qgsexpression.py
@@ -10,7 +10,7 @@ __author__ = 'Nathan Woodrow'
 __date__ = '4/11/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsexpressionbuilderwidget.py b/tests/src/python/test_qgsexpressionbuilderwidget.py
index ce7b1bed2d..4bb2f6c143 100644
--- a/tests/src/python/test_qgsexpressionbuilderwidget.py
+++ b/tests/src/python/test_qgsexpressionbuilderwidget.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '30/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsexpressionlineedit.py b/tests/src/python/test_qgsexpressionlineedit.py
index b90bf006db..c534f9cb76 100644
--- a/tests/src/python/test_qgsexpressionlineedit.py
+++ b/tests/src/python/test_qgsexpressionlineedit.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '20/08/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsextentgroupbox.py b/tests/src/python/test_qgsextentgroupbox.py
index 5831171736..500e07f61e 100644
--- a/tests/src/python/test_qgsextentgroupbox.py
+++ b/tests/src/python/test_qgsextentgroupbox.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '31/05/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgsfeature.py b/tests/src/python/test_qgsfeature.py
index 344e333417..abcc5c4fb0 100644
--- a/tests/src/python/test_qgsfeature.py
+++ b/tests/src/python/test_qgsfeature.py
@@ -10,7 +10,7 @@ __author__ = 'Germán Carrillo'
 __date__ = '06/10/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfeatureiterator.py b/tests/src/python/test_qgsfeatureiterator.py
index 2082f06529..36ba6b4350 100644
--- a/tests/src/python/test_qgsfeatureiterator.py
+++ b/tests/src/python/test_qgsfeatureiterator.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '18/09/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfeaturesink.py b/tests/src/python/test_qgsfeaturesink.py
index ada4251fc8..d43c9052de 100644
--- a/tests/src/python/test_qgsfeaturesink.py
+++ b/tests/src/python/test_qgsfeaturesink.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '26/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 import qgis  # NOQA
 
 import os
diff --git a/tests/src/python/test_qgsfeaturesource.py b/tests/src/python/test_qgsfeaturesource.py
index 768f041c42..13fb1d08b7 100644
--- a/tests/src/python/test_qgsfeaturesource.py
+++ b/tests/src/python/test_qgsfeaturesource.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '26/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 import qgis  # NOQA
 
 import os
diff --git a/tests/src/python/test_qgsfeedback.py b/tests/src/python/test_qgsfeedback.py
index 45425f8bc3..ba0d6920d6 100644
--- a/tests/src/python/test_qgsfeedback.py
+++ b/tests/src/python/test_qgsfeedback.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfieldcombobox.py b/tests/src/python/test_qgsfieldcombobox.py
index 37565d1dcd..44a8ddac76 100644
--- a/tests/src/python/test_qgsfieldcombobox.py
+++ b/tests/src/python/test_qgsfieldcombobox.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '20/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfieldformatters.py b/tests/src/python/test_qgsfieldformatters.py
index ab94954733..c05b968cb0 100644
--- a/tests/src/python/test_qgsfieldformatters.py
+++ b/tests/src/python/test_qgsfieldformatters.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '05/12/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfieldmodel.py b/tests/src/python/test_qgsfieldmodel.py
index a03a5c518a..a108cdafe3 100755
--- a/tests/src/python/test_qgsfieldmodel.py
+++ b/tests/src/python/test_qgsfieldmodel.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '14/11/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfields.py b/tests/src/python/test_qgsfields.py
index e97b3fc77c..6d6a344f9c 100644
--- a/tests/src/python/test_qgsfields.py
+++ b/tests/src/python/test_qgsfields.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '16/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfieldvalidator.py b/tests/src/python/test_qgsfieldvalidator.py
index a0777502f2..07ac8dba3d 100644
--- a/tests/src/python/test_qgsfieldvalidator.py
+++ b/tests/src/python/test_qgsfieldvalidator.py
@@ -10,7 +10,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '31/01/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfiledownloader.py b/tests/src/python/test_qgsfiledownloader.py
index 5e86e8f619..dcb54c9c85 100644
--- a/tests/src/python/test_qgsfiledownloader.py
+++ b/tests/src/python/test_qgsfiledownloader.py
@@ -22,7 +22,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '08/11/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 start_app()
diff --git a/tests/src/python/test_qgsfileutils.py b/tests/src/python/test_qgsfileutils.py
index d7f962e396..85b883fdf4 100644
--- a/tests/src/python/test_qgsfileutils.py
+++ b/tests/src/python/test_qgsfileutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/12/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfillsymbollayers.py b/tests/src/python/test_qgsfillsymbollayers.py
index af565d7bda..55d9d712fd 100644
--- a/tests/src/python/test_qgsfillsymbollayers.py
+++ b/tests/src/python/test_qgsfillsymbollayers.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2017-01'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import qgis  # NOQA
diff --git a/tests/src/python/test_qgsfilterlineedit.py b/tests/src/python/test_qgsfilterlineedit.py
index 6ea21e6570..66598f4f13 100644
--- a/tests/src/python/test_qgsfilterlineedit.py
+++ b/tests/src/python/test_qgsfilterlineedit.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '20/08/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfloatingwidget.py b/tests/src/python/test_qgsfloatingwidget.py
index 168357ab78..56c35e1484 100644
--- a/tests/src/python/test_qgsfloatingwidget.py
+++ b/tests/src/python/test_qgsfloatingwidget.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '26/04/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt.QtWidgets import QWidget, QGridLayout
diff --git a/tests/src/python/test_qgsfontbutton.py b/tests/src/python/test_qgsfontbutton.py
index 2ceefb34f9..86e06d78e0 100644
--- a/tests/src/python/test_qgsfontbutton.py
+++ b/tests/src/python/test_qgsfontbutton.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '04/06/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsfontutils.py b/tests/src/python/test_qgsfontutils.py
index 2df6fc04c3..5972347ef7 100644
--- a/tests/src/python/test_qgsfontutils.py
+++ b/tests/src/python/test_qgsfontutils.py
@@ -12,7 +12,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '2014/02/19'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsFontUtils, QgsSettings
 from qgis.testing import (
diff --git a/tests/src/python/test_qgsgeometry.py b/tests/src/python/test_qgsgeometry.py
index e46508711d..50b879c3a3 100644
--- a/tests/src/python/test_qgsgeometry.py
+++ b/tests/src/python/test_qgsgeometry.py
@@ -10,7 +10,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import csv
@@ -1924,6 +1924,31 @@ class TestQgsGeometry(unittest.TestCase):
         wkt = geometry.asWkt()
         assert compareWkt(expwkt, wkt), "Expected:\n%s\nGot:\n%s\n" % (expwkt, wkt)
 
+        # collect some geometries which are already multipart
+        geometries = [QgsGeometry.fromWkt('LineString( 0 0, 1 1)'), QgsGeometry.fromWkt('MultiLineString((2 2, 3 3),(4 4, 5 5))')]
+        geometry = QgsGeometry.collectGeometry(geometries)
+        expwkt = "MultiLineString ((0 0, 1 1),(2 2, 3 3),(4 4, 5 5))"
+        wkt = geometry.asWkt()
+        assert compareWkt(expwkt, wkt), "Expected:\n%s\nGot:\n%s\n" % (expwkt, wkt)
+
+        geometries = [QgsGeometry.fromWkt('MultiLineString((2 2, 3 3),(4 4, 5 5))'), QgsGeometry.fromWkt('LineString( 0 0, 1 1)')]
+        geometry = QgsGeometry.collectGeometry(geometries)
+        expwkt = "MultiLineString ((2 2, 3 3),(4 4, 5 5),(0 0, 1 1))"
+        wkt = geometry.asWkt()
+        assert compareWkt(expwkt, wkt), "Expected:\n%s\nGot:\n%s\n" % (expwkt, wkt)
+
+        geometries = [QgsGeometry.fromWkt('Polygon((100 100, 101 100, 101 101, 100 100))'), QgsGeometry.fromWkt('MultiPolygon (((0 0, 1 0, 1 1, 0 1, 0 0)),((2 0, 3 0, 3 1, 2 1, 2 0)))')]
+        geometry = QgsGeometry.collectGeometry(geometries)
+        expwkt = "MultiPolygon (((100 100, 101 100, 101 101, 100 100)),((0 0, 1 0, 1 1, 0 1, 0 0)),((2 0, 3 0, 3 1, 2 1, 2 0)))"
+        wkt = geometry.asWkt()
+        assert compareWkt(expwkt, wkt), "Expected:\n%s\nGot:\n%s\n" % (expwkt, wkt)
+
+        geometries = [QgsGeometry.fromWkt('MultiPolygon (((0 0, 1 0, 1 1, 0 1, 0 0)),((2 0, 3 0, 3 1, 2 1, 2 0)))'), QgsGeometry.fromWkt('Polygon((100 100, 101 100, 101 101, 100 100))')]
+        geometry = QgsGeometry.collectGeometry(geometries)
+        expwkt = "MultiPolygon (((0 0, 1 0, 1 1, 0 1, 0 0)),((2 0, 3 0, 3 1, 2 1, 2 0)),((100 100, 101 100, 101 101, 100 100)))"
+        wkt = geometry.asWkt()
+        assert compareWkt(expwkt, wkt), "Expected:\n%s\nGot:\n%s\n" % (expwkt, wkt)
+
         # test empty list
         geometries = []
         geometry = QgsGeometry.collectGeometry(geometries)
diff --git a/tests/src/python/test_qgsgeometry_avoid_intersections.py b/tests/src/python/test_qgsgeometry_avoid_intersections.py
index f00a9ffb66..8c0c83af9d 100644
--- a/tests/src/python/test_qgsgeometry_avoid_intersections.py
+++ b/tests/src/python/test_qgsgeometry_avoid_intersections.py
@@ -10,7 +10,7 @@ __author__ = 'Martin Dobias'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py b/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py
index 0b414398ed..94a92e607d 100644
--- a/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py
+++ b/tests/src/python/test_qgsgeometrygeneratorsymbollayer.py
@@ -21,7 +21,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'December 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsgeometryvalidator.py b/tests/src/python/test_qgsgeometryvalidator.py
index 0d7bb558a7..355593d119 100644
--- a/tests/src/python/test_qgsgeometryvalidator.py
+++ b/tests/src/python/test_qgsgeometryvalidator.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '03/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import (
     QgsGeometry,
diff --git a/tests/src/python/test_qgsgeonodeconnection.py b/tests/src/python/test_qgsgeonodeconnection.py
index 0de429924f..8a1a03c750 100644
--- a/tests/src/python/test_qgsgeonodeconnection.py
+++ b/tests/src/python/test_qgsgeonodeconnection.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12.09.2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsgraduatedsymbolrenderer.py b/tests/src/python/test_qgsgraduatedsymbolrenderer.py
index 8604c91a16..1bb88703c4 100644
--- a/tests/src/python/test_qgsgraduatedsymbolrenderer.py
+++ b/tests/src/python/test_qgsgraduatedsymbolrenderer.py
@@ -10,7 +10,7 @@ __author__ = 'Chris Crook'
 __date__ = '3/10/2014'
 __copyright__ = 'Copyright 2014, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgshighlight.py b/tests/src/python/test_qgshighlight.py
index 5fe38beec7..08c34f0207 100644
--- a/tests/src/python/test_qgshighlight.py
+++ b/tests/src/python/test_qgshighlight.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '8.11.2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgsinterval.py b/tests/src/python/test_qgsinterval.py
index 256eeb0a38..e30dd38c5d 100644
--- a/tests/src/python/test_qgsinterval.py
+++ b/tests/src/python/test_qgsinterval.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '10/05/2016'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsissue7244.py b/tests/src/python/test_qgsissue7244.py
index d8ce50f960..1921a06946 100644
--- a/tests/src/python/test_qgsissue7244.py
+++ b/tests/src/python/test_qgsissue7244.py
@@ -10,7 +10,7 @@ __author__ = 'Vincent Mora'
 __date__ = '09/07/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsjsonutils.py b/tests/src/python/test_qgsjsonutils.py
index 38f736faa3..9312768318 100644
--- a/tests/src/python/test_qgsjsonutils.py
+++ b/tests/src/python/test_qgsjsonutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '3/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayerdefinition.py b/tests/src/python/test_qgslayerdefinition.py
index 1c742fc203..d28c3417a4 100644
--- a/tests/src/python/test_qgslayerdefinition.py
+++ b/tests/src/python/test_qgslayerdefinition.py
@@ -10,7 +10,7 @@ __author__ = 'Hugo Mercier'
 __date__ = '07/01/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayermetadata.py b/tests/src/python/test_qgslayermetadata.py
index bb83efbe5d..7911039fcc 100644
--- a/tests/src/python/test_qgslayermetadata.py
+++ b/tests/src/python/test_qgslayermetadata.py
@@ -12,7 +12,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayertree.py b/tests/src/python/test_qgslayertree.py
index 7c806b7870..e4e4380ad0 100644
--- a/tests/src/python/test_qgslayertree.py
+++ b/tests/src/python/test_qgslayertree.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '22.3.2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayertreemapcanvasbridge.py b/tests/src/python/test_qgslayertreemapcanvasbridge.py
index c3473f9da3..3f5709aa92 100644
--- a/tests/src/python/test_qgslayertreemapcanvasbridge.py
+++ b/tests/src/python/test_qgslayertreemapcanvasbridge.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '8/03/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgslayertreeview.py b/tests/src/python/test_qgslayertreeview.py
index f671eecbca..40223580d9 100644
--- a/tests/src/python/test_qgslayertreeview.py
+++ b/tests/src/python/test_qgslayertreeview.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '02.04.2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayout.py b/tests/src/python/test_qgslayout.py
index acc4d0f628..37d26c1b4f 100644
--- a/tests/src/python/test_qgslayout.py
+++ b/tests/src/python/test_qgslayout.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt import sip
diff --git a/tests/src/python/test_qgslayoutaligner.py b/tests/src/python/test_qgslayoutaligner.py
index d6d55db35f..ca6d81c8b9 100644
--- a/tests/src/python/test_qgslayoutaligner.py
+++ b/tests/src/python/test_qgslayoutaligner.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '3/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt import sip
diff --git a/tests/src/python/test_qgslayoutatlas.py b/tests/src/python/test_qgslayoutatlas.py
index 1d6a32890a..29f9a43959 100644
--- a/tests/src/python/test_qgslayoutatlas.py
+++ b/tests/src/python/test_qgslayoutatlas.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '19/12/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt import sip
diff --git a/tests/src/python/test_qgslayoutexporter.py b/tests/src/python/test_qgslayoutexporter.py
index 129d3b0729..475cd406d1 100644
--- a/tests/src/python/test_qgslayoutexporter.py
+++ b/tests/src/python/test_qgslayoutexporter.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11/12/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt import sip
diff --git a/tests/src/python/test_qgslayoutframe.py b/tests/src/python/test_qgslayoutframe.py
index fdff523396..63821cdb7f 100644
--- a/tests/src/python/test_qgslayoutframe.py
+++ b/tests/src/python/test_qgslayoutframe.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '23/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutgridsettings.py b/tests/src/python/test_qgslayoutgridsettings.py
index 8c268fd23d..a8afdce8a9 100644
--- a/tests/src/python/test_qgslayoutgridsettings.py
+++ b/tests/src/python/test_qgslayoutgridsettings.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '05/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutguides.py b/tests/src/python/test_qgslayoutguides.py
index aac09e9c5a..ebd6dd42e5 100644
--- a/tests/src/python/test_qgslayoutguides.py
+++ b/tests/src/python/test_qgslayoutguides.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '05/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayouthtml.py b/tests/src/python/test_qgslayouthtml.py
index 4a6ea02f46..e4907223a1 100644
--- a/tests/src/python/test_qgslayouthtml.py
+++ b/tests/src/python/test_qgslayouthtml.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '20/11/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutitem.py b/tests/src/python/test_qgslayoutitem.py
index ff3c569cfb..d4392aae1e 100644
--- a/tests/src/python/test_qgslayoutitem.py
+++ b/tests/src/python/test_qgslayoutitem.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '17/01/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 import qgis  # NOQA
 
 import os
diff --git a/tests/src/python/test_qgslayoutitempropertiesdialog.py b/tests/src/python/test_qgslayoutitempropertiesdialog.py
index e1128d3a53..a71f10e9d3 100644
--- a/tests/src/python/test_qgslayoutitempropertiesdialog.py
+++ b/tests/src/python/test_qgslayoutitempropertiesdialog.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutlabel.py b/tests/src/python/test_qgslayoutlabel.py
index ac634dd2f3..f604cb3c2c 100644
--- a/tests/src/python/test_qgslayoutlabel.py
+++ b/tests/src/python/test_qgslayoutlabel.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '23/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutlegend.py b/tests/src/python/test_qgslayoutlegend.py
index ff18221d60..06a35a168e 100644
--- a/tests/src/python/test_qgslayoutlegend.py
+++ b/tests/src/python/test_qgslayoutlegend.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '24/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QRectF
 from qgis.PyQt.QtGui import QColor
diff --git a/tests/src/python/test_qgslayoutmanager.py b/tests/src/python/test_qgslayoutmanager.py
index a385044cc1..1f28ba1fe4 100644
--- a/tests/src/python/test_qgslayoutmanager.py
+++ b/tests/src/python/test_qgslayoutmanager.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '15/03/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutmap.py b/tests/src/python/test_qgslayoutmap.py
index 6ec05bbabb..1bc14c1a9c 100644
--- a/tests/src/python/test_qgslayoutmap.py
+++ b/tests/src/python/test_qgslayoutmap.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 Nyall Dawson'
 __date__ = '20/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutmapgrid.py b/tests/src/python/test_qgslayoutmapgrid.py
index 431b46a5af..279018769d 100644
--- a/tests/src/python/test_qgslayoutmapgrid.py
+++ b/tests/src/python/test_qgslayoutmapgrid.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '20/10/2017'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutpage.py b/tests/src/python/test_qgslayoutpage.py
index 61037fecb7..7e27b27bc3 100644
--- a/tests/src/python/test_qgslayoutpage.py
+++ b/tests/src/python/test_qgslayoutpage.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '23/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutpagecollection.py b/tests/src/python/test_qgslayoutpagecollection.py
index 89e3897df9..79eac47cf1 100644
--- a/tests/src/python/test_qgslayoutpagecollection.py
+++ b/tests/src/python/test_qgslayoutpagecollection.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt import sip
diff --git a/tests/src/python/test_qgslayoutpicture.py b/tests/src/python/test_qgslayoutpicture.py
index 8f15437d2f..00505fa513 100644
--- a/tests/src/python/test_qgslayoutpicture.py
+++ b/tests/src/python/test_qgslayoutpicture.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '23/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutpolygon.py b/tests/src/python/test_qgslayoutpolygon.py
index 12931a1e6a..c280d537a9 100644
--- a/tests/src/python/test_qgslayoutpolygon.py
+++ b/tests/src/python/test_qgslayoutpolygon.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2016 by Paul Blottiere'
 __date__ = '14/03/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutpolyline.py b/tests/src/python/test_qgslayoutpolyline.py
index bcfd05218c..6c2d46cc1a 100644
--- a/tests/src/python/test_qgslayoutpolyline.py
+++ b/tests/src/python/test_qgslayoutpolyline.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2016 by Paul Blottiere'
 __date__ = '14/03/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutscalebar.py b/tests/src/python/test_qgslayoutscalebar.py
index 0589924771..5bef50523b 100644
--- a/tests/src/python/test_qgslayoutscalebar.py
+++ b/tests/src/python/test_qgslayoutscalebar.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '23/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutshape.py b/tests/src/python/test_qgslayoutshape.py
index 33f7271b24..85dd779870 100644
--- a/tests/src/python/test_qgslayoutshape.py
+++ b/tests/src/python/test_qgslayoutshape.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '23/10/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutsnapper.py b/tests/src/python/test_qgslayoutsnapper.py
index e929d779d5..f485926254 100644
--- a/tests/src/python/test_qgslayoutsnapper.py
+++ b/tests/src/python/test_qgslayoutsnapper.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '05/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutunitscombobox.py b/tests/src/python/test_qgslayoutunitscombobox.py
index b1b9366c3c..017344dba5 100644
--- a/tests/src/python/test_qgslayoutunitscombobox.py
+++ b/tests/src/python/test_qgslayoutunitscombobox.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslayoutview.py b/tests/src/python/test_qgslayoutview.py
index f588bfcd19..794119e82e 100644
--- a/tests/src/python/test_qgslayoutview.py
+++ b/tests/src/python/test_qgslayoutview.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '05/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 from qgis.PyQt import sip
diff --git a/tests/src/python/test_qgslinesegment.py b/tests/src/python/test_qgslinesegment.py
index 5cae5a164a..6934ac3b79 100644
--- a/tests/src/python/test_qgslinesegment.py
+++ b/tests/src/python/test_qgslinesegment.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '13/04/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgslinesymbollayers.py b/tests/src/python/test_qgslinesymbollayers.py
index 9d2d68d56a..d95c603e05 100644
--- a/tests/src/python/test_qgslinesymbollayers.py
+++ b/tests/src/python/test_qgslinesymbollayers.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2017-01'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import qgis  # NOQA
diff --git a/tests/src/python/test_qgslocator.py b/tests/src/python/test_qgslocator.py
index 2314ee5d37..0e39e81fe9 100644
--- a/tests/src/python/test_qgslocator.py
+++ b/tests/src/python/test_qgslocator.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2017 by Nyall Dawson'
 __date__ = '6/05/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 import qgis  # NOQA
 
 import os
diff --git a/tests/src/python/test_qgslogger.py b/tests/src/python/test_qgslogger.py
index 29f9284a0b..a19b26fb46 100644
--- a/tests/src/python/test_qgslogger.py
+++ b/tests/src/python/test_qgslogger.py
@@ -10,7 +10,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmapcanvas.py b/tests/src/python/test_qgsmapcanvas.py
index 9a194b094a..c656c311ed 100644
--- a/tests/src/python/test_qgsmapcanvas.py
+++ b/tests/src/python/test_qgsmapcanvas.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '24/1/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmapcanvasannotationitem.py b/tests/src/python/test_qgsmapcanvasannotationitem.py
index 2e5a07a2f5..47fbed7c59 100644
--- a/tests/src/python/test_qgsmapcanvasannotationitem.py
+++ b/tests/src/python/test_qgsmapcanvasannotationitem.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '24/1/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmaplayer.py b/tests/src/python/test_qgsmaplayer.py
index 9a79e7f14a..6ebfd57f0b 100644
--- a/tests/src/python/test_qgsmaplayer.py
+++ b/tests/src/python/test_qgsmaplayer.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '1/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import qgis  # NOQA
@@ -22,6 +22,9 @@ from qgis.core import (QgsReadWriteContext,
 from qgis.testing import start_app, unittest
 from qgis.PyQt.QtXml import QDomDocument
 from qgis.PyQt.QtCore import QTemporaryDir
+from utilities import unitTestDataPath
+
+TEST_DATA_DIR = unitTestDataPath()
 
 start_app()
 
@@ -116,6 +119,27 @@ class TestQgsMapLayer(unittest.TestCase):
         self.assertTrue(result)
         self.assertTrue(os.path.exists(style_path))
 
+    def testStyleUri(self):
+        # shapefile
+        layer = QgsVectorLayer(os.path.join(TEST_DATA_DIR, 'points.shp'), "layer", "ogr")
+        uri = layer.styleURI()
+        self.assertEqual(uri, os.path.join(TEST_DATA_DIR, 'points.qml'))
+
+        # geopackage without and with layername
+        layer = QgsVectorLayer(os.path.join(TEST_DATA_DIR, 'provider', 'bug_17795.gpkg'), "layer", "ogr")
+        uri = layer.styleURI()
+        self.assertEqual(uri, os.path.join(TEST_DATA_DIR, 'provider', 'bug_17795.qml'))
+
+        layer = QgsVectorLayer("{}|layername=bug_17795".format(os.path.join(TEST_DATA_DIR, 'provider', 'bug_17795.gpkg')), "layer", "ogr")
+        uri = layer.styleURI()
+        self.assertEqual(uri, os.path.join(TEST_DATA_DIR, 'provider', 'bug_17795.qml'))
+
+        # delimited text
+        uri = 'file://{}?type=csv&detectTypes=yes&geomType=none'.format(os.path.join(TEST_DATA_DIR, 'delimitedtext', 'test.csv'))
+        layer = QgsVectorLayer(uri, "layer", "delimitedtext")
+        uri = layer.styleURI()
+        self.assertEqual(uri, os.path.join(TEST_DATA_DIR, 'delimitedtext', 'test.qml'))
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_qgsmaplayeraction.py b/tests/src/python/test_qgsmaplayeraction.py
index 207d790d65..e3c1611da3 100644
--- a/tests/src/python/test_qgsmaplayeraction.py
+++ b/tests/src/python/test_qgsmaplayeraction.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '24/02/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsmaplayermodel.py b/tests/src/python/test_qgsmaplayermodel.py
index d8d7e798ba..376c5d86db 100644
--- a/tests/src/python/test_qgsmaplayermodel.py
+++ b/tests/src/python/test_qgsmaplayermodel.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '16/11/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmaplayerproxymodel.py b/tests/src/python/test_qgsmaplayerproxymodel.py
index 3db3013973..d4f5a3ea99 100644
--- a/tests/src/python/test_qgsmaplayerproxymodel.py
+++ b/tests/src/python/test_qgsmaplayerproxymodel.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '22/08/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmaplayerstore.py b/tests/src/python/test_qgsmaplayerstore.py
index c9fb683b11..9222d46976 100644
--- a/tests/src/python/test_qgsmaplayerstore.py
+++ b/tests/src/python/test_qgsmaplayerstore.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2017-05'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsMapLayerStore, QgsVectorLayer, QgsMapLayer
 from qgis.testing import start_app, unittest
diff --git a/tests/src/python/test_qgsmaprenderer.py b/tests/src/python/test_qgsmaprenderer.py
index 09b74aa2d7..97cd65773a 100644
--- a/tests/src/python/test_qgsmaprenderer.py
+++ b/tests/src/python/test_qgsmaprenderer.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '1/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmaprenderercache.py b/tests/src/python/test_qgsmaprenderercache.py
index 21b521be73..143fc8af77 100644
--- a/tests/src/python/test_qgsmaprenderercache.py
+++ b/tests/src/python/test_qgsmaprenderercache.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '1/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmapthemecollection.py b/tests/src/python/test_qgsmapthemecollection.py
index 8b27c28cc3..3654e7f3e8 100644
--- a/tests/src/python/test_qgsmapthemecollection.py
+++ b/tests/src/python/test_qgsmapthemecollection.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '8/03/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmapunitscale.py b/tests/src/python/test_qgsmapunitscale.py
index 3d6cee5d52..92b4d569d8 100644
--- a/tests/src/python/test_qgsmapunitscale.py
+++ b/tests/src/python/test_qgsmapunitscale.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2015-09'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmargins.py b/tests/src/python/test_qgsmargins.py
index 1171fc5ac4..8f26ed408e 100644
--- a/tests/src/python/test_qgsmargins.py
+++ b/tests/src/python/test_qgsmargins.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2017-01'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import qgis  # NOQA
diff --git a/tests/src/python/test_qgsmarkerlinesymbollayer.py b/tests/src/python/test_qgsmarkerlinesymbollayer.py
index f13658f190..d2c588313b 100644
--- a/tests/src/python/test_qgsmarkerlinesymbollayer.py
+++ b/tests/src/python/test_qgsmarkerlinesymbollayer.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'November 2018'
 __copyright__ = '(C) 2018, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmessagelog.py b/tests/src/python/test_qgsmessagelog.py
index 32e79df404..6499e2ad11 100644
--- a/tests/src/python/test_qgsmessagelog.py
+++ b/tests/src/python/test_qgsmessagelog.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/06/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmetadatabase.py b/tests/src/python/test_qgsmetadatabase.py
index 5e5d29ab95..5831aedea2 100644
--- a/tests/src/python/test_qgsmetadatabase.py
+++ b/tests/src/python/test_qgsmetadatabase.py
@@ -12,7 +12,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '19/03/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmetadatawidget.py b/tests/src/python/test_qgsmetadatawidget.py
index 50280e03da..54071077ea 100644
--- a/tests/src/python/test_qgsmetadatawidget.py
+++ b/tests/src/python/test_qgsmetadatawidget.py
@@ -12,7 +12,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '20/03/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsmultiedittoolbutton.py b/tests/src/python/test_qgsmultiedittoolbutton.py
index e5d7dde741..f1a11ef90a 100644
--- a/tests/src/python/test_qgsmultiedittoolbutton.py
+++ b/tests/src/python/test_qgsmultiedittoolbutton.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '16/03/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsnetworkcontentfetcher.py b/tests/src/python/test_qgsnetworkcontentfetcher.py
index 6fdfefc23c..e5b1df6d79 100644
--- a/tests/src/python/test_qgsnetworkcontentfetcher.py
+++ b/tests/src/python/test_qgsnetworkcontentfetcher.py
@@ -13,7 +13,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '4/28/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsnetworkcontentfetcherregistry.py b/tests/src/python/test_qgsnetworkcontentfetcherregistry.py
index bb96dea0d6..39d92edd9b 100644
--- a/tests/src/python/test_qgsnetworkcontentfetcherregistry.py
+++ b/tests/src/python/test_qgsnetworkcontentfetcherregistry.py
@@ -14,7 +14,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '27/04/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsnetworkcontentfetchertask.py b/tests/src/python/test_qgsnetworkcontentfetchertask.py
index 50e3c125e6..451c700fca 100644
--- a/tests/src/python/test_qgsnetworkcontentfetchertask.py
+++ b/tests/src/python/test_qgsnetworkcontentfetchertask.py
@@ -14,7 +14,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '29/03/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsnewgeopackagelayerdialog.py b/tests/src/python/test_qgsnewgeopackagelayerdialog.py
index ff4ff10bf2..c31001c0e5 100644
--- a/tests/src/python/test_qgsnewgeopackagelayerdialog.py
+++ b/tests/src/python/test_qgsnewgeopackagelayerdialog.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '2016-04-21'
 __copyright__ = 'Copyright 2016, Even Rouault'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import tempfile
diff --git a/tests/src/python/test_qgsnoapplication.py b/tests/src/python/test_qgsnoapplication.py
index 61680c5a1e..bc98c7feb8 100644
--- a/tests/src/python/test_qgsnoapplication.py
+++ b/tests/src/python/test_qgsnoapplication.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '1/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import sys
diff --git a/tests/src/python/test_qgsnullsymbolrenderer.py b/tests/src/python/test_qgsnullsymbolrenderer.py
index ac3db0c293..f95aaf7b53 100644
--- a/tests/src/python/test_qgsnullsymbolrenderer.py
+++ b/tests/src/python/test_qgsnullsymbolrenderer.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'April 2016'
 __copyright__ = '(C) 2016, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsopacitywidget.py b/tests/src/python/test_qgsopacitywidget.py
index 59b5a6a9c0..75a0211115 100644
--- a/tests/src/python/test_qgsopacitywidget.py
+++ b/tests/src/python/test_qgsopacitywidget.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '30/05/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsowsconnection.py b/tests/src/python/test_qgsowsconnection.py
index 1a4304596c..071823cec2 100644
--- a/tests/src/python/test_qgsowsconnection.py
+++ b/tests/src/python/test_qgsowsconnection.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12.09.2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspallabeling_base.py b/tests/src/python/test_qgspallabeling_base.py
index 68f6994702..670834ce5f 100644
--- a/tests/src/python/test_qgspallabeling_base.py
+++ b/tests/src/python/test_qgspallabeling_base.py
@@ -17,7 +17,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '07/09/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspallabeling_canvas.py b/tests/src/python/test_qgspallabeling_canvas.py
index 1bc8f8c038..7c31b16902 100644
--- a/tests/src/python/test_qgspallabeling_canvas.py
+++ b/tests/src/python/test_qgspallabeling_canvas.py
@@ -15,7 +15,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '07/09/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspallabeling_layout.py b/tests/src/python/test_qgspallabeling_layout.py
index 207b3dba4a..0e5151d5c4 100644
--- a/tests/src/python/test_qgspallabeling_layout.py
+++ b/tests/src/python/test_qgspallabeling_layout.py
@@ -15,7 +15,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '2014/02/21'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspallabeling_placement.py b/tests/src/python/test_qgspallabeling_placement.py
index d9926ee73c..df133f1e69 100644
--- a/tests/src/python/test_qgspallabeling_placement.py
+++ b/tests/src/python/test_qgspallabeling_placement.py
@@ -14,7 +14,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2015-08-24'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspallabeling_server.py b/tests/src/python/test_qgspallabeling_server.py
index 5e7f643910..4cade319df 100644
--- a/tests/src/python/test_qgspallabeling_server.py
+++ b/tests/src/python/test_qgspallabeling_server.py
@@ -15,7 +15,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '07/12/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspallabeling_tests.py b/tests/src/python/test_qgspallabeling_tests.py
index ee4fa78499..bbe5223fab 100644
--- a/tests/src/python/test_qgspallabeling_tests.py
+++ b/tests/src/python/test_qgspallabeling_tests.py
@@ -14,7 +14,7 @@ __author__ = 'Larry Shaffer'
 __date__ = '07/16/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspanelwidget.py b/tests/src/python/test_qgspanelwidget.py
index e194805aec..e0506e45dd 100644
--- a/tests/src/python/test_qgspanelwidget.py
+++ b/tests/src/python/test_qgspanelwidget.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '16/08/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspanelwidgetstack.py b/tests/src/python/test_qgspanelwidgetstack.py
index 5ae0ae810c..9c9d93cd4e 100644
--- a/tests/src/python/test_qgspanelwidgetstack.py
+++ b/tests/src/python/test_qgspanelwidgetstack.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '05/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspoint.py b/tests/src/python/test_qgspoint.py
index 266de03097..9f350e0164 100644
--- a/tests/src/python/test_qgspoint.py
+++ b/tests/src/python/test_qgspoint.py
@@ -10,7 +10,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspointclusterrenderer.py b/tests/src/python/test_qgspointclusterrenderer.py
index 6ba22bf543..1ec17b6d85 100644
--- a/tests/src/python/test_qgspointclusterrenderer.py
+++ b/tests/src/python/test_qgspointclusterrenderer.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'September 2016'
 __copyright__ = '(C) 2016, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgspointdisplacementrenderer.py b/tests/src/python/test_qgspointdisplacementrenderer.py
index 5c72678912..d10b802aae 100644
--- a/tests/src/python/test_qgspointdisplacementrenderer.py
+++ b/tests/src/python/test_qgspointdisplacementrenderer.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'September 2016'
 __copyright__ = '(C) 2016, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspostgresdomain.py b/tests/src/python/test_qgspostgresdomain.py
index 14721b74b9..533c9a5dd0 100644
--- a/tests/src/python/test_qgspostgresdomain.py
+++ b/tests/src/python/test_qgspostgresdomain.py
@@ -10,7 +10,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '10/02/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgspostgrestransaction.py b/tests/src/python/test_qgspostgrestransaction.py
index 8cdf74ac42..0fdc0ce5ad 100644
--- a/tests/src/python/test_qgspostgrestransaction.py
+++ b/tests/src/python/test_qgspostgrestransaction.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11/06/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsprocessingalgrunner.py b/tests/src/python/test_qgsprocessingalgrunner.py
index f03624f647..4c607a70c1 100644
--- a/tests/src/python/test_qgsprocessingalgrunner.py
+++ b/tests/src/python/test_qgsprocessingalgrunner.py
@@ -10,7 +10,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '2019-02'
 __copyright__ = 'Copyright 2019, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import re
 from qgis.PyQt.QtCore import QCoreApplication
diff --git a/tests/src/python/test_qgsprocessinginplace.py b/tests/src/python/test_qgsprocessinginplace.py
index 2136141c44..f669027320 100644
--- a/tests/src/python/test_qgsprocessinginplace.py
+++ b/tests/src/python/test_qgsprocessinginplace.py
@@ -10,7 +10,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '2018-09'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication, QVariant
 from qgis.core import (
diff --git a/tests/src/python/test_qgsprocessingrecentalgorithmslog.py b/tests/src/python/test_qgsprocessingrecentalgorithmslog.py
index 07db344948..0751c776c9 100644
--- a/tests/src/python/test_qgsprocessingrecentalgorithmslog.py
+++ b/tests/src/python/test_qgsprocessingrecentalgorithmslog.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2018-07'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.PyQt.QtCore import QCoreApplication
 from qgis.core import QgsSettings
diff --git a/tests/src/python/test_qgsproject.py b/tests/src/python/test_qgsproject.py
index 77f7339ace..0af1e76113 100644
--- a/tests/src/python/test_qgsproject.py
+++ b/tests/src/python/test_qgsproject.py
@@ -12,7 +12,7 @@ __author__ = 'Sebastian Dietrich'
 __date__ = '19/11/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsprojectionselectionwidgets.py b/tests/src/python/test_qgsprojectionselectionwidgets.py
index cb79a339b4..8f79ba931a 100644
--- a/tests/src/python/test_qgsprojectionselectionwidgets.py
+++ b/tests/src/python/test_qgsprojectionselectionwidgets.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12/11/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsprojectmetadata.py b/tests/src/python/test_qgsprojectmetadata.py
index 63c500ed84..f2b3b0e3d3 100644
--- a/tests/src/python/test_qgsprojectmetadata.py
+++ b/tests/src/python/test_qgsprojectmetadata.py
@@ -12,7 +12,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '19/03/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrange.py b/tests/src/python/test_qgsrange.py
index fad429a922..bd7d9344bd 100644
--- a/tests/src/python/test_qgsrange.py
+++ b/tests/src/python/test_qgsrange.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '11.04.2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrangewidgets.py b/tests/src/python/test_qgsrangewidgets.py
index e231f14852..62245e8b16 100644
--- a/tests/src/python/test_qgsrangewidgets.py
+++ b/tests/src/python/test_qgsrangewidgets.py
@@ -10,7 +10,7 @@ __author__ = 'Tobias Reber'
 __date__ = '20/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrasterbandcombobox.py b/tests/src/python/test_qgsrasterbandcombobox.py
index 08df6143a9..f0df0c4344 100644
--- a/tests/src/python/test_qgsrasterbandcombobox.py
+++ b/tests/src/python/test_qgsrasterbandcombobox.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '09/05/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgsrastercolorrampshader.py b/tests/src/python/test_qgsrastercolorrampshader.py
index cffe8ced0b..2186d032e0 100644
--- a/tests/src/python/test_qgsrastercolorrampshader.py
+++ b/tests/src/python/test_qgsrastercolorrampshader.py
@@ -11,7 +11,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '17/08/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrasterfilewriter.py b/tests/src/python/test_qgsrasterfilewriter.py
index 7ccf60c549..af28845362 100644
--- a/tests/src/python/test_qgsrasterfilewriter.py
+++ b/tests/src/python/test_qgsrasterfilewriter.py
@@ -10,7 +10,7 @@ __author__ = 'Radim Blazek'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrasterfilewritertask.py b/tests/src/python/test_qgsrasterfilewritertask.py
index 6611c40997..5f5e47a858 100644
--- a/tests/src/python/test_qgsrasterfilewritertask.py
+++ b/tests/src/python/test_qgsrasterfilewritertask.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgsrasterlayer.py b/tests/src/python/test_qgsrasterlayer.py
index 189b80b123..a6a64bd123 100644
--- a/tests/src/python/test_qgsrasterlayer.py
+++ b/tests/src/python/test_qgsrasterlayer.py
@@ -11,7 +11,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrasterrange.py b/tests/src/python/test_qgsrasterrange.py
index b817063e59..3912a188d0 100644
--- a/tests/src/python/test_qgsrasterrange.py
+++ b/tests/src/python/test_qgsrasterrange.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '07/06/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsrasterrerderer_createsld.py b/tests/src/python/test_qgsrasterrerderer_createsld.py
index c2f22cb2f6..0fa9cc4e6c 100644
--- a/tests/src/python/test_qgsrasterrerderer_createsld.py
+++ b/tests/src/python/test_qgsrasterrerderer_createsld.py
@@ -20,7 +20,7 @@ __author__ = 'Luigi Pirelli'
 __date__ = 'December 2018'
 __copyright__ = '(C) 2018, Luigi Pirelli'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsratiolockbutton.py b/tests/src/python/test_qgsratiolockbutton.py
index c45de7b5a3..0c9ef88d2f 100644
--- a/tests/src/python/test_qgsratiolockbutton.py
+++ b/tests/src/python/test_qgsratiolockbutton.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsreadwritecontext.py b/tests/src/python/test_qgsreadwritecontext.py
index 71a11abd62..5e3e5c23a6 100644
--- a/tests/src/python/test_qgsreadwritecontext.py
+++ b/tests/src/python/test_qgsreadwritecontext.py
@@ -11,7 +11,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '28.02.2018'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrectangle.py b/tests/src/python/test_qgsrectangle.py
index 7416846a1a..e078ae7d87 100644
--- a/tests/src/python/test_qgsrectangle.py
+++ b/tests/src/python/test_qgsrectangle.py
@@ -10,7 +10,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsreferencedgeometry.py b/tests/src/python/test_qgsreferencedgeometry.py
index 9ecab36d8f..181179d9c8 100644
--- a/tests/src/python/test_qgsreferencedgeometry.py
+++ b/tests/src/python/test_qgsreferencedgeometry.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '31/08/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrelation.py b/tests/src/python/test_qgsrelation.py
index 5ac6eb4457..a1e8bac85a 100644
--- a/tests/src/python/test_qgsrelation.py
+++ b/tests/src/python/test_qgsrelation.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '07/10/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrelationeditwidget.py b/tests/src/python/test_qgsrelationeditwidget.py
index 5e985a49a6..5afd651680 100644
--- a/tests/src/python/test_qgsrelationeditwidget.py
+++ b/tests/src/python/test_qgsrelationeditwidget.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '28/11/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrelationmanager.py b/tests/src/python/test_qgsrelationmanager.py
index fee7244bea..b5490c8f37 100644
--- a/tests/src/python/test_qgsrelationmanager.py
+++ b/tests/src/python/test_qgsrelationmanager.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '17/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrendercontext.py b/tests/src/python/test_qgsrendercontext.py
index 9bc2a068d5..59ae2f0195 100644
--- a/tests/src/python/test_qgsrendercontext.py
+++ b/tests/src/python/test_qgsrendercontext.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '16/01/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrenderer.py b/tests/src/python/test_qgsrenderer.py
index e32a5c4b1f..df13ab0a56 100644
--- a/tests/src/python/test_qgsrenderer.py
+++ b/tests/src/python/test_qgsrenderer.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '07/06/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsreport.py b/tests/src/python/test_qgsreport.py
index 207dfff751..0e5038c77b 100644
--- a/tests/src/python/test_qgsreport.py
+++ b/tests/src/python/test_qgsreport.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '29/12/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsrulebasedrenderer.py b/tests/src/python/test_qgsrulebasedrenderer.py
index a538ba5226..7145e28754 100644
--- a/tests/src/python/test_qgsrulebasedrenderer.py
+++ b/tests/src/python/test_qgsrulebasedrenderer.py
@@ -21,7 +21,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'September 2015'
 __copyright__ = '(C) 2015, Matthiasd Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssearchwidgettoolbutton.py b/tests/src/python/test_qgssearchwidgettoolbutton.py
index 0cf3657d32..6a8db4cfe6 100644
--- a/tests/src/python/test_qgssearchwidgettoolbutton.py
+++ b/tests/src/python/test_qgssearchwidgettoolbutton.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '18/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgssearchwidgetwrapper.py b/tests/src/python/test_qgssearchwidgetwrapper.py
index c662f2eec1..235207c254 100644
--- a/tests/src/python/test_qgssearchwidgetwrapper.py
+++ b/tests/src/python/test_qgssearchwidgetwrapper.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-05'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsserver.py b/tests/src/python/test_qgsserver.py
index 4aebb50276..f6af5b294e 100644
--- a/tests/src/python/test_qgsserver.py
+++ b/tests/src/python/test_qgsserver.py
@@ -26,7 +26,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_accesscontrol.py b/tests/src/python/test_qgsserver_accesscontrol.py
index 0e1e6077c1..63de1861d3 100644
--- a/tests/src/python/test_qgsserver_accesscontrol.py
+++ b/tests/src/python/test_qgsserver_accesscontrol.py
@@ -10,7 +10,7 @@ __author__ = 'Stephane Brunner'
 __date__ = '28/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsserver_accesscontrol_wcs.py b/tests/src/python/test_qgsserver_accesscontrol_wcs.py
index 530dfe5d8e..d08d8bf775 100644
--- a/tests/src/python/test_qgsserver_accesscontrol_wcs.py
+++ b/tests/src/python/test_qgsserver_accesscontrol_wcs.py
@@ -10,7 +10,7 @@ __author__ = 'Stephane Brunner'
 __date__ = '28/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 print('CTEST_FULL_OUTPUT')
 
diff --git a/tests/src/python/test_qgsserver_accesscontrol_wfs.py b/tests/src/python/test_qgsserver_accesscontrol_wfs.py
index 17023f09c3..5d253232b2 100644
--- a/tests/src/python/test_qgsserver_accesscontrol_wfs.py
+++ b/tests/src/python/test_qgsserver_accesscontrol_wfs.py
@@ -10,7 +10,7 @@ __author__ = 'Stephane Brunner'
 __date__ = '28/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 print('CTEST_FULL_OUTPUT')
 
diff --git a/tests/src/python/test_qgsserver_accesscontrol_wfs_transactional.py b/tests/src/python/test_qgsserver_accesscontrol_wfs_transactional.py
index 6916ac766a..90ea996a53 100644
--- a/tests/src/python/test_qgsserver_accesscontrol_wfs_transactional.py
+++ b/tests/src/python/test_qgsserver_accesscontrol_wfs_transactional.py
@@ -10,7 +10,7 @@ __author__ = 'Stephane Brunner'
 __date__ = '28/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 print('CTEST_FULL_OUTPUT')
 
diff --git a/tests/src/python/test_qgsserver_accesscontrol_wms.py b/tests/src/python/test_qgsserver_accesscontrol_wms.py
index 58edb4be0e..2b33beb69d 100644
--- a/tests/src/python/test_qgsserver_accesscontrol_wms.py
+++ b/tests/src/python/test_qgsserver_accesscontrol_wms.py
@@ -10,7 +10,7 @@ __author__ = 'Stephane Brunner'
 __date__ = '28/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 print('CTEST_FULL_OUTPUT')
 
diff --git a/tests/src/python/test_qgsserver_accesscontrol_wms_getlegendgraphic.py b/tests/src/python/test_qgsserver_accesscontrol_wms_getlegendgraphic.py
index 3b38829ecb..68ab037a95 100644
--- a/tests/src/python/test_qgsserver_accesscontrol_wms_getlegendgraphic.py
+++ b/tests/src/python/test_qgsserver_accesscontrol_wms_getlegendgraphic.py
@@ -10,7 +10,7 @@ __author__ = 'Stephane Brunner'
 __date__ = '28/08/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 print('CTEST_FULL_OUTPUT')
 
diff --git a/tests/src/python/test_qgsserver_cachemanager.py b/tests/src/python/test_qgsserver_cachemanager.py
index 88db3ae470..bb740ae321 100644
--- a/tests/src/python/test_qgsserver_cachemanager.py
+++ b/tests/src/python/test_qgsserver_cachemanager.py
@@ -10,7 +10,7 @@ __author__ = 'René-Luc DHONT'
 __date__ = '19/07/2018'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 print('CTEST_FULL_OUTPUT')
 
diff --git a/tests/src/python/test_qgsserver_locale_override.py b/tests/src/python/test_qgsserver_locale_override.py
index 6f87d185f7..09328fbd28 100644
--- a/tests/src/python/test_qgsserver_locale_override.py
+++ b/tests/src/python/test_qgsserver_locale_override.py
@@ -18,7 +18,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '01/04/2019'
 __copyright__ = 'Copyright 2019, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_modules.py b/tests/src/python/test_qgsserver_modules.py
index 17a8ee4ffa..d1794de4fc 100644
--- a/tests/src/python/test_qgsserver_modules.py
+++ b/tests/src/python/test_qgsserver_modules.py
@@ -21,7 +21,7 @@ __author__ = 'David Marteau'
 __date__ = 'December 2016'
 __copyright__ = '(C) 2016, David Marteau'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 """ QGIS test for server services
 """
diff --git a/tests/src/python/test_qgsserver_plugins.py b/tests/src/python/test_qgsserver_plugins.py
index cd741a5ab8..7f424d5183 100644
--- a/tests/src/python/test_qgsserver_plugins.py
+++ b/tests/src/python/test_qgsserver_plugins.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '22/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_projectutils.py b/tests/src/python/test_qgsserver_projectutils.py
index 18da34809c..1fecd14871 100644
--- a/tests/src/python/test_qgsserver_projectutils.py
+++ b/tests/src/python/test_qgsserver_projectutils.py
@@ -11,7 +11,7 @@ __author__ = 'Paul Blottiere'
 __date__ = '26/12/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_request.py b/tests/src/python/test_qgsserver_request.py
index 3b952e22f3..e3da6dcf5c 100644
--- a/tests/src/python/test_qgsserver_request.py
+++ b/tests/src/python/test_qgsserver_request.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '29/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/tests/src/python/test_qgsserver_response.py b/tests/src/python/test_qgsserver_response.py
index 4538f7002e..58cb8cc6cf 100644
--- a/tests/src/python/test_qgsserver_response.py
+++ b/tests/src/python/test_qgsserver_response.py
@@ -15,7 +15,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '29/04/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.server import QgsBufferServerResponse
diff --git a/tests/src/python/test_qgsserver_security.py b/tests/src/python/test_qgsserver_security.py
index cdf1971d7a..162034afb7 100644
--- a/tests/src/python/test_qgsserver_security.py
+++ b/tests/src/python/test_qgsserver_security.py
@@ -11,7 +11,7 @@ __author__ = 'Paul Blottiere'
 __date__ = '31/01/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.utils import spatialite_connect
 import os
diff --git a/tests/src/python/test_qgsserver_services.py b/tests/src/python/test_qgsserver_services.py
index d1b0158e7a..cec2e1d179 100644
--- a/tests/src/python/test_qgsserver_services.py
+++ b/tests/src/python/test_qgsserver_services.py
@@ -21,7 +21,7 @@ __author__ = 'David Marteau'
 __date__ = 'December 2016'
 __copyright__ = '(C) 2016, David Marteau'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 """ QGIS test for server services
 """
diff --git a/tests/src/python/test_qgsserver_settings.py b/tests/src/python/test_qgsserver_settings.py
index 1a82e95cc4..87a93f3a4b 100644
--- a/tests/src/python/test_qgsserver_settings.py
+++ b/tests/src/python/test_qgsserver_settings.py
@@ -11,7 +11,7 @@ __author__ = 'Paul Blottiere'
 __date__ = '20/12/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_wfs.py b/tests/src/python/test_qgsserver_wfs.py
index 93217b4a3b..ffe2d8237c 100644
--- a/tests/src/python/test_qgsserver_wfs.py
+++ b/tests/src/python/test_qgsserver_wfs.py
@@ -14,7 +14,7 @@ __author__ = 'René-Luc Dhont'
 __date__ = '19/09/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -456,6 +456,13 @@ class TestQgsServerWFS(QgsServerTestBase):
         self.wfs_request_compare("DescribeFeatureType", '1.1.0', "TYPENAME=does_not_exist&",
                                  'wfs_describeFeatureType_1_1_0_typename_wrong', project_file=project_file)
 
+    def test_describeFeatureTypeVirtualFields(self):
+        """Test DescribeFeatureType with virtual fields: bug GH-29767"""
+
+        project_file = "bug_gh29767_double_vfield.qgs"
+        self.wfs_request_compare("DescribeFeatureType", '1.1.0', "",
+                                 'wfs_describeFeatureType_1_1_0_virtual_fields', project_file=project_file)
+
     def test_getFeatureFeature_0_nulls(self):
         """Test that 0 and null in integer columns are reported correctly"""
 
diff --git a/tests/src/python/test_qgsserver_wfst.py b/tests/src/python/test_qgsserver_wfst.py
index 7a73fb3c2c..89d3da79d6 100644
--- a/tests/src/python/test_qgsserver_wfst.py
+++ b/tests/src/python/test_qgsserver_wfst.py
@@ -32,7 +32,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '05/15/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 import os
diff --git a/tests/src/python/test_qgsserver_wms.py b/tests/src/python/test_qgsserver_wms.py
index 82db0d22be..3183445e1e 100644
--- a/tests/src/python/test_qgsserver_wms.py
+++ b/tests/src/python/test_qgsserver_wms.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -110,8 +110,8 @@ class TestQgsServerWMS(TestQgsServerWMSTestBase):
                                  '',
                                  'getschemaextension')
 
-    def wms_request_compare_project(self, request, extra=None, reference_file=None):
-        projectPath = self.testdata_path + "test_project.qgs"
+    def wms_request_compare_project(self, request, extra=None, reference_file=None, project_name="test_project.qgs"):
+        projectPath = self.testdata_path + project_name
         assert os.path.exists(projectPath), "Project file not found: " + projectPath
 
         project = QgsProject()
@@ -137,6 +137,10 @@ class TestQgsServerWMS(TestQgsServerWMSTestBase):
         self.wms_request_compare_project('GetCapabilities')
         # reference_file='getcapabilities_without_map_param' could be the right response
 
+    def test_wms_getcapabilities_project_empty_layer(self):
+        """WMS GetCapabilities with empty layer different CRS: wrong bbox - Regression GH 30264"""
+        self.wms_request_compare_project('GetCapabilities', reference_file='wms_getcapabilities_empty_layer', project_name='bug_gh30264_empty_layer_wrong_bbox.qgs')
+
     def wms_inspire_request_compare(self, request):
         """WMS INSPIRE tests"""
         project = self.testdata_path + "test_project_inspire.qgs"
diff --git a/tests/src/python/test_qgsserver_wms_getfeatureinfo.py b/tests/src/python/test_qgsserver_wms_getfeatureinfo.py
index 84d1b9f9ce..d51a129d7b 100644
--- a/tests/src/python/test_qgsserver_wms_getfeatureinfo.py
+++ b/tests/src/python/test_qgsserver_wms_getfeatureinfo.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '11/03/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_wms_getlegendgraphic.py b/tests/src/python/test_qgsserver_wms_getlegendgraphic.py
index 0846336da2..ec29ef3e7d 100644
--- a/tests/src/python/test_qgsserver_wms_getlegendgraphic.py
+++ b/tests/src/python/test_qgsserver_wms_getlegendgraphic.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserver_wms_getmap.py b/tests/src/python/test_qgsserver_wms_getmap.py
index 8cb17dafb2..edaa976818 100644
--- a/tests/src/python/test_qgsserver_wms_getmap.py
+++ b/tests/src/python/test_qgsserver_wms_getmap.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -850,6 +850,26 @@ class TestQgsServerWMSGetMap(QgsServerTestBase):
         r, h = self._result(self._execute_request(qs))
         self._img_diff_error(r, h, "WMS_GetMap_Filter4")
 
+        # test that filters with colons in values work as expected
+        projectPath = os.path.join(self.testdata_path, "test_project_wms_filter.qgs")
+        qs = "?" + "&".join(["%s=%s" % i for i in list({
+            "MAP": urllib.parse.quote(projectPath),
+            "SERVICE": "WMS",
+            "VERSION": "1.1.1",
+            "REQUEST": "GetMap",
+            "LAYERS": "points",
+            "STYLES": "",
+            "FORMAT": "image/png",
+            "BBOX": "-80000,25000,-15000,50000.0",
+            "HEIGHT": "500",
+            "WIDTH": "500",
+            "CRS": "EPSG:3857",
+            "FILTER": "points:\"name\" = 'foo:bar'"
+        }.items())])
+
+        r, h = self._result(self._execute_request(qs))
+        self._img_diff_error(r, h, "WMS_GetMap_Filter6")
+
     def test_wms_getmap_filter_ogc(self):
         filter = "<Filter><PropertyIsEqualTo><PropertyName>name</PropertyName>" + \
                  "<Literal>eurasia</Literal></PropertyIsEqualTo></Filter>"
@@ -1427,6 +1447,29 @@ class TestQgsServerWMSGetMap(QgsServerTestBase):
         r, h = self._result(self._execute_request(qs))
         self._img_diff_error(r, h, "WMS_GetMap_GroupedLayersDown")
 
+    def test_wms_getmap_datasource_error(self):
+        """Must throw a server exception if datasource if not available"""
+        qs = "?" + "&".join(["%s=%s" % i for i in list({
+            "MAP": urllib.parse.quote(os.path.join(self.testdata_path, 'test_project_wms_invalid_layers.qgs')),
+            "SERVICE": "WMS",
+            "VERSION": "1.3.0",
+            "REQUEST": "GetMap",
+            "BBOX": "613402.5658687877003,5809005.018114360981,619594.408781287726,5813869.006602735259",
+            "CRS": "EPSG:25832",
+            "WIDTH": "429",
+            "HEIGHT": "337",
+            "LAYERS": "areas and symbols,osm",
+            "STYLES": ",",
+            "FORMAT": "image/png",
+            "DPI": "200",
+            "MAP_RESOLUTION": "200",
+            "FORMAT_OPTIONS": "dpi:200"
+        }.items())])
+
+        r, h = self._result(self._execute_request(qs))
+
+        self.assertTrue('ServerException' in str(r))
+
     def test_wms_getmap_root_custom_layer_order_regression_21917(self):
         """When drawing root layer, custom layer order order should be respected."""
 
diff --git a/tests/src/python/test_qgsserver_wms_getprint.py b/tests/src/python/test_qgsserver_wms_getprint.py
index 70370723a7..b49b80e56a 100644
--- a/tests/src/python/test_qgsserver_wms_getprint.py
+++ b/tests/src/python/test_qgsserver_wms_getprint.py
@@ -14,7 +14,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '25/05/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
@@ -28,12 +28,18 @@ import urllib.error
 
 from qgis.testing import unittest
 from qgis.PyQt.QtCore import QSize
+from qgis.PyQt.QtGui import QImage, QPainter
+from qgis.PyQt.QtSvg import QSvgRenderer, QSvgGenerator
 
 import osgeo.gdal  # NOQA
+import tempfile
+import base64
+import subprocess
 
 from test_qgsserver import QgsServerTestBase
-from qgis.core import QgsProject
+from qgis.core import QgsProject, QgsRenderChecker
 from qgis.server import QgsServerRequest
+from utilities import getExecutablePath, unitTestDataPath
 
 # Strip path and content length because path may vary
 RE_STRIP_UNCHECKABLE = b'MAP=[^"]+|Content-Length: \d+'
@@ -42,6 +48,132 @@ RE_ATTRIBUTES = b'[^>\s]+=[^>\s]+'
 
 class TestQgsServerWMSGetPrint(QgsServerTestBase):
 
+    def _pdf_to_png(self, pdf_file_path, rendered_file_path, page, dpi=96):
+
+        # PDF-to-image utility
+        # look for Poppler w/ Cairo, then muPDF
+        # * Poppler w/ Cairo renders correctly
+        # * Poppler w/o Cairo does not always correctly render vectors in PDF to image
+        # * muPDF renders correctly, but slightly shifts colors
+        for util in [
+            'pdftocairo',
+            # 'mudraw',
+        ]:
+            PDFUTIL = getExecutablePath(util)
+            if PDFUTIL:
+                break
+
+        # noinspection PyUnboundLocalVariable
+        if not PDFUTIL:
+            assert False, ('PDF-to-image utility not found on PATH: '
+                           'install Poppler (with Cairo)')
+
+        if PDFUTIL.strip().endswith('pdftocairo'):
+            filebase = os.path.join(
+                os.path.dirname(rendered_file_path),
+                os.path.splitext(os.path.basename(rendered_file_path))[0]
+            )
+            call = [
+                PDFUTIL, '-png', '-singlefile', '-r', str(dpi),
+                '-x', '0', '-y', '0', '-f', str(page), '-l', str(page),
+                pdf_file_path, filebase
+            ]
+        elif PDFUTIL.strip().endswith('mudraw'):
+            call = [
+                PDFUTIL, '-c', 'rgba',
+                '-r', str(dpi), '-f', str(page), '-l', str(page),
+                # '-b', '8',
+                '-o', rendered_file_path, pdf_file_path
+            ]
+        else:
+            return False, ''
+
+        print("exportToPdf call: {0}".format(' '.join(call)))
+        try:
+            subprocess.check_call(call)
+        except subprocess.CalledProcessError as e:
+            assert False, ("exportToPdf failed!\n"
+                           "cmd: {0}\n"
+                           "returncode: {1}\n"
+                           "message: {2}".format(e.cmd, e.returncode, e.message))
+
+    def _pdf_diff(self, pdf, control_image, max_diff, max_size_diff=QSize(), dpi=96):
+
+        temp_pdf = os.path.join(tempfile.gettempdir(), "%s_result.pdf" % control_image)
+
+        with open(temp_pdf, "wb") as f:
+            f.write(pdf)
+
+        temp_image = os.path.join(tempfile.gettempdir(), "%s_result.png" % control_image)
+        self._pdf_to_png(temp_pdf, temp_image, dpi=dpi, page=1)
+
+        control = QgsRenderChecker()
+        control.setControlPathPrefix("qgis_server")
+        control.setControlName(control_image)
+        control.setRenderedImage(temp_image)
+        if max_size_diff.isValid():
+            control.setSizeTolerance(max_size_diff.width(), max_size_diff.height())
+        return control.compareImages(control_image, max_diff), control.report()
+
+    def _pdf_diff_error(self, response, headers, image, max_diff=100, max_size_diff=QSize(), unittest_data_path='control_images', dpi=96):
+
+        reference_path = unitTestDataPath(unittest_data_path) + '/qgis_server/' + image + '/' + image + '.pdf'
+        self.store_reference(reference_path, response)
+
+        self.assertEqual(
+            headers.get("Content-Type"), 'application/pdf',
+            "Content type is wrong: %s instead of %s\n%s" % (headers.get("Content-Type"), 'application/pdf', response))
+
+        test, report = self._pdf_diff(response, image, max_diff, max_size_diff, dpi)
+
+        with open(os.path.join(tempfile.gettempdir(), image + "_result.pdf"), "rb") as rendered_file:
+            if not os.environ.get('ENCODED_OUTPUT'):
+                message = "PDF is wrong\: rendered file %s/%s_result.%s" % (tempfile.gettempdir(), image, 'pdf')
+            else:
+                encoded_rendered_file = base64.b64encode(rendered_file.read())
+                message = "PDF is wrong\n%s\File:\necho '%s' | base64 -d >%s/%s_result.%s" % (
+                    report, encoded_rendered_file.strip().decode('utf8'), tempfile.gettempdir(), image, 'pdf'
+                )
+
+        with open(os.path.join(tempfile.gettempdir(), image + "_result.png"), "rb") as rendered_file:
+            if not os.environ.get('ENCODED_OUTPUT'):
+                message = "Image is wrong\: rendered file %s/%s_result.%s" % (tempfile.gettempdir(), image, 'png')
+            else:
+                encoded_rendered_file = base64.b64encode(rendered_file.read())
+                message = "Image is wrong\n%s\nImage:\necho '%s' | base64 -d >%s/%s_result.%s" % (
+                    report, encoded_rendered_file.strip().decode('utf8'), tempfile.gettempdir(), image, 'png'
+                )
+
+        # If the failure is in image sizes the diff file will not exists.
+        if os.path.exists(os.path.join(tempfile.gettempdir(), image + "_result_diff.png")):
+            with open(os.path.join(tempfile.gettempdir(), image + "_result_diff.png"), "rb") as diff_file:
+                if not os.environ.get('ENCODED_OUTPUT'):
+                    message = "Image is wrong\: diff file %s/%s_result_diff.%s" % (tempfile.gettempdir(), image, 'png')
+                else:
+                    encoded_diff_file = base64.b64encode(diff_file.read())
+                    message += "\nDiff:\necho '%s' | base64 -d > %s/%s_result_diff.%s" % (
+                        encoded_diff_file.strip().decode('utf8'), tempfile.gettempdir(), image, 'png'
+                    )
+
+        self.assertTrue(test, message)
+
+    def _svg_to_png(svg_file_path, rendered_file_path, width):
+        svgr = QSvgRenderer(svg_file_path)
+
+        height = width / svgr.viewBoxF().width() * svgr.viewBoxF().height()
+
+        image = QImage(width, height, QImage.Format_ARGB32)
+        image.fill(Qt.transparent)
+
+        p = QPainter(image)
+        p.setRenderHint(QPainter.Antialiasing, False)
+        svgr.render(p)
+        p.end()
+
+        res = image.save(rendered_file_path, 'png')
+        if not res:
+            os.unlink(rendered_file_path)
+
     """QGIS Server WMS Tests for GetPrint request"""
 
     def test_wms_getprint_basic(self):
@@ -107,6 +239,22 @@ class TestQgsServerWMSGetPrint(QgsServerTestBase):
         r, h = self._result(self._execute_request(qs))
         self._img_diff_error(r, h, "WMS_GetPrint_Basic", outputJpg=True)
 
+        # Output PDF
+        qs = "?" + "&".join(["%s=%s" % i for i in list({
+            "MAP": urllib.parse.quote(self.projectPath),
+            "SERVICE": "WMS",
+            "VERSION": "1.1.1",
+            "REQUEST": "GetPrint",
+            "TEMPLATE": "layoutA4",
+            "FORMAT": "pdf",
+            "map0:EXTENT": "-33626185.498,-13032965.185,33978427.737,16020257.031",
+            "LAYERS": "Country,Hello",
+            "CRS": "EPSG:3857"
+        }.items())])
+
+        r, h = self._result(self._execute_request(qs))
+        self._pdf_diff_error(r, h, "WMS_GetPrint_Basic_Pdf", dpi=300)
+
     def test_wms_getprint_style(self):
         # default style
         qs = "?" + "&".join(["%s=%s" % i for i in list({
@@ -312,6 +460,24 @@ class TestQgsServerWMSGetPrint(QgsServerTestBase):
         r, h = self._result(self._execute_request(qs))
         self._img_diff_error(r, h, "WMS_GetPrint_Selection")
 
+        # Output PDF
+        qs = "?" + "&".join(["%s=%s" % i for i in list({
+            "MAP": urllib.parse.quote(self.projectPath),
+            "SERVICE": "WMS",
+            "VERSION": "1.1.1",
+            "REQUEST": "GetPrint",
+            "TEMPLATE": "layoutA4",
+            "FORMAT": "pdf",
+            "LAYERS": "Country,Hello",
+            "map0:EXTENT": "-33626185.498,-13032965.185,33978427.737,16020257.031",
+            "map0:LAYERS": "Country,Hello",
+            "CRS": "EPSG:3857",
+            "SELECTION": "Country: 4"
+        }.items())])
+
+        r, h = self._result(self._execute_request(qs))
+        self._pdf_diff_error(r, h, "WMS_GetPrint_Selection_Pdf", dpi=300)
+
     def test_wms_getprint_opacity(self):
         qs = "?" + "&".join(["%s=%s" % i for i in list({
             "MAP": urllib.parse.quote(self.projectPath),
diff --git a/tests/src/python/test_qgsserver_wmts.py b/tests/src/python/test_qgsserver_wmts.py
index aadd962088..9801774cf5 100644
--- a/tests/src/python/test_qgsserver_wmts.py
+++ b/tests/src/python/test_qgsserver_wmts.py
@@ -14,7 +14,7 @@ __author__ = 'René-Luc Dhont'
 __date__ = '19/09/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgsserverlogger.py b/tests/src/python/test_qgsserverlogger.py
index 48f4333fee..bd61767a2a 100644
--- a/tests/src/python/test_qgsserverlogger.py
+++ b/tests/src/python/test_qgsserverlogger.py
@@ -4,7 +4,7 @@
 __author__ = 'Eric Lemoine'
 __date__ = '11/09/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
diff --git a/tests/src/python/test_qgssettings.py b/tests/src/python/test_qgssettings.py
index c43a522746..c6b97dcc03 100644
--- a/tests/src/python/test_qgssettings.py
+++ b/tests/src/python/test_qgssettings.py
@@ -20,7 +20,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '02/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 start_app()
diff --git a/tests/src/python/test_qgsshortcutsmanager.py b/tests/src/python/test_qgsshortcutsmanager.py
index a5b4a21a32..a62acd37a0 100644
--- a/tests/src/python/test_qgsshortcutsmanager.py
+++ b/tests/src/python/test_qgsshortcutsmanager.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '28/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssimplelinesymbollayer.py b/tests/src/python/test_qgssimplelinesymbollayer.py
index 0dc304f619..d8fc176eb3 100644
--- a/tests/src/python/test_qgssimplelinesymbollayer.py
+++ b/tests/src/python/test_qgssimplelinesymbollayer.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'November 2018'
 __copyright__ = '(C) 2018, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssinglesymbolrenderer.py b/tests/src/python/test_qgssinglesymbolrenderer.py
index e9c1b8f788..2ed8e4d22b 100644
--- a/tests/src/python/test_qgssinglesymbolrenderer.py
+++ b/tests/src/python/test_qgssinglesymbolrenderer.py
@@ -21,7 +21,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'December 2015'
 __copyright__ = '(C) 2015, Matthias Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssourceselectprovider.py b/tests/src/python/test_qgssourceselectprovider.py
index 7003ede347..39a55004d2 100644
--- a/tests/src/python/test_qgssourceselectprovider.py
+++ b/tests/src/python/test_qgssourceselectprovider.py
@@ -22,7 +22,7 @@ __author__ = 'Alessandro Pasotti'
 __date__ = '01/09/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 start_app()
diff --git a/tests/src/python/test_qgsspatialindex.py b/tests/src/python/test_qgsspatialindex.py
index 2623531167..8003ac5840 100644
--- a/tests/src/python/test_qgsspatialindex.py
+++ b/tests/src/python/test_qgsspatialindex.py
@@ -10,7 +10,7 @@ __author__ = 'Alexander Bruy'
 __date__ = '20/01/2011'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssqlstatement.py b/tests/src/python/test_qgssqlstatement.py
index dc2f1f50fb..430e649ac4 100644
--- a/tests/src/python/test_qgssqlstatement.py
+++ b/tests/src/python/test_qgssqlstatement.py
@@ -10,7 +10,7 @@ __author__ = 'Even Rouault'
 __date__ = '4/4/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.testing import unittest
 from qgis.core import QgsSQLStatement
diff --git a/tests/src/python/test_qgsstringstatisticalsummary.py b/tests/src/python/test_qgsstringstatisticalsummary.py
index 3748f0a320..d707226942 100644
--- a/tests/src/python/test_qgsstringstatisticalsummary.py
+++ b/tests/src/python/test_qgsstringstatisticalsummary.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '07/05/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsstringutils.py b/tests/src/python/test_qgsstringutils.py
index c3891875d3..7ac47fa3a9 100644
--- a/tests/src/python/test_qgsstringutils.py
+++ b/tests/src/python/test_qgsstringutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '30/08/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsstylemodel.py b/tests/src/python/test_qgsstylemodel.py
index 4fd03fb9e2..c4b0d07aa5 100644
--- a/tests/src/python/test_qgsstylemodel.py
+++ b/tests/src/python/test_qgsstylemodel.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '10/09/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssvgcache.py b/tests/src/python/test_qgssvgcache.py
index 283db70f3d..b7ab630bb7 100644
--- a/tests/src/python/test_qgssvgcache.py
+++ b/tests/src/python/test_qgssvgcache.py
@@ -10,7 +10,7 @@ __author__ = '(C) 2018 by Nyall Dawson'
 __date__ = '29/03/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssvgsourcelineedit.py b/tests/src/python/test_qgssvgsourcelineedit.py
index f62cce352b..01ae065a23 100644
--- a/tests/src/python/test_qgssvgsourcelineedit.py
+++ b/tests/src/python/test_qgssvgsourcelineedit.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '19/07/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgssymbol.py b/tests/src/python/test_qgssymbol.py
index 7838eccba3..51a091bf3a 100644
--- a/tests/src/python/test_qgssymbol.py
+++ b/tests/src/python/test_qgssymbol.py
@@ -21,7 +21,7 @@ __author__ = 'Nyall Dawson'
 __date__ = 'January 2016'
 __copyright__ = '(C) 2016, Nyall Dawson'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssymbolbutton.py b/tests/src/python/test_qgssymbolbutton.py
index 8f9742dd7f..4efacf78c8 100644
--- a/tests/src/python/test_qgssymbolbutton.py
+++ b/tests/src/python/test_qgssymbolbutton.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '23/07/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssymbolexpressionvariables.py b/tests/src/python/test_qgssymbolexpressionvariables.py
index 66fa690664..bf08c9c76c 100644
--- a/tests/src/python/test_qgssymbolexpressionvariables.py
+++ b/tests/src/python/test_qgssymbolexpressionvariables.py
@@ -21,7 +21,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = 'January 2016'
 __copyright__ = '(C) 2016, Matthiasd Kuhn'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssymbollayer.py b/tests/src/python/test_qgssymbollayer.py
index 4bfe4635d9..1a70c89223 100644
--- a/tests/src/python/test_qgssymbollayer.py
+++ b/tests/src/python/test_qgssymbollayer.py
@@ -21,7 +21,7 @@ __author__ = 'Massimo Endrighi'
 __date__ = 'October 2012'
 __copyright__ = '(C) 2012, Massimo Endrighi'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssymbollayer_createsld.py b/tests/src/python/test_qgssymbollayer_createsld.py
index 0f5dd4778e..af09b60c6c 100644
--- a/tests/src/python/test_qgssymbollayer_createsld.py
+++ b/tests/src/python/test_qgssymbollayer_createsld.py
@@ -19,7 +19,7 @@ __author__ = 'Andrea Aime'
 __date__ = 'July 2016'
 __copyright__ = '(C) 2012, Andrea Aime'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssymbollayer_readsld.py b/tests/src/python/test_qgssymbollayer_readsld.py
index 024c227378..8a85c058a3 100644
--- a/tests/src/python/test_qgssymbollayer_readsld.py
+++ b/tests/src/python/test_qgssymbollayer_readsld.py
@@ -21,7 +21,7 @@ __author__ = 'Jorge Gustavo Rocha'
 __date__ = 'January 2017'
 __copyright__ = '(C) 2017, Jorge Gustavo Rocha'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgssymbollayerutils.py b/tests/src/python/test_qgssymbollayerutils.py
index 31b818d4e7..155152b917 100644
--- a/tests/src/python/test_qgssymbollayerutils.py
+++ b/tests/src/python/test_qgssymbollayerutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-09'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgstaskmanager.py b/tests/src/python/test_qgstaskmanager.py
index c84f195f4d..57a77b7136 100644
--- a/tests/src/python/test_qgstaskmanager.py
+++ b/tests/src/python/test_qgstaskmanager.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '26/04/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from time import sleep
diff --git a/tests/src/python/test_qgstextformatwidget.py b/tests/src/python/test_qgstextformatwidget.py
index ebd8f7a9a3..106ed1bc67 100644
--- a/tests/src/python/test_qgstextformatwidget.py
+++ b/tests/src/python/test_qgstextformatwidget.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-09'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
@@ -43,7 +43,7 @@ class PyQgsTextFormatWidget(unittest.TestCase):
         s.setOpacity(0.5)
         s.setJoinStyle(Qt.RoundJoin)
         s.setBlendMode(QPainter.CompositionMode_Difference)
-        s.setPaintEffect(QgsBlurEffect.create({'blur_level': '10', 'enabled': '1'}))
+        s.setPaintEffect(QgsBlurEffect.create({'blur_level': '2.0', 'blur_unit': QgsUnitTypes.encodeUnit(QgsUnitTypes.RenderMillimeters), 'enabled': '1'}))
         return s
 
     def checkBufferSettings(self, s):
@@ -58,7 +58,7 @@ class PyQgsTextFormatWidget(unittest.TestCase):
         self.assertEqual(s.joinStyle(), Qt.RoundJoin)
         self.assertEqual(s.blendMode(), QPainter.CompositionMode_Difference)
         self.assertTrue(s.paintEffect())
-        self.assertEqual(s.paintEffect().blurLevel(), 10)
+        self.assertEqual(s.paintEffect().blurLevel(), 2.0)
 
     def createBackgroundSettings(self):
         s = QgsTextBackgroundSettings()
@@ -85,7 +85,7 @@ class PyQgsTextFormatWidget(unittest.TestCase):
         s.setStrokeWidth(7)
         s.setStrokeWidthUnit(QgsUnitTypes.RenderMapUnits)
         s.setStrokeWidthMapUnitScale(QgsMapUnitScale(QgsMapUnitScale(25, 26)))
-        s.setPaintEffect(QgsBlurEffect.create({'blur_level': '6', 'enabled': '1'}))
+        s.setPaintEffect(QgsBlurEffect.create({'blur_level': '6.0', 'blur_unit': QgsUnitTypes.encodeUnit(QgsUnitTypes.RenderMillimeters), 'enabled': '1'}))
         return s
 
     def checkBackgroundSettings(self, s):
@@ -114,7 +114,7 @@ class PyQgsTextFormatWidget(unittest.TestCase):
         self.assertEqual(s.strokeWidthUnit(), QgsUnitTypes.RenderMapUnits)
         self.assertEqual(s.strokeWidthMapUnitScale(), QgsMapUnitScale(25, 26))
         self.assertTrue(s.paintEffect())
-        self.assertEqual(s.paintEffect().blurLevel(), 6)
+        self.assertEqual(s.paintEffect().blurLevel(), 6.0)
 
     def createShadowSettings(self):
         s = QgsTextShadowSettings()
diff --git a/tests/src/python/test_qgstextrenderer.py b/tests/src/python/test_qgstextrenderer.py
index 9498690822..7ea87bc695 100644
--- a/tests/src/python/test_qgstextrenderer.py
+++ b/tests/src/python/test_qgstextrenderer.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2016-09'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgstreewidgetitem.py b/tests/src/python/test_qgstreewidgetitem.py
index 35ef815a18..8e9ff9a8a5 100644
--- a/tests/src/python/test_qgstreewidgetitem.py
+++ b/tests/src/python/test_qgstreewidgetitem.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12/07/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsunittypes.py b/tests/src/python/test_qgsunittypes.py
index 854aecf4c7..bd1130db66 100644
--- a/tests/src/python/test_qgsunittypes.py
+++ b/tests/src/python/test_qgsunittypes.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '03.02.2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvectorfilewriter.py b/tests/src/python/test_qgsvectorfilewriter.py
index d3a351c76b..06cc070e05 100644
--- a/tests/src/python/test_qgsvectorfilewriter.py
+++ b/tests/src/python/test_qgsvectorfilewriter.py
@@ -13,7 +13,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvectorfilewritertask.py b/tests/src/python/test_qgsvectorfilewritertask.py
index 7b3d94082a..5985ad3000 100644
--- a/tests/src/python/test_qgsvectorfilewritertask.py
+++ b/tests/src/python/test_qgsvectorfilewritertask.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '12/02/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgsvectorlayer.py b/tests/src/python/test_qgsvectorlayer.py
index 527566eba2..a56e637b34 100755
--- a/tests/src/python/test_qgsvectorlayer.py
+++ b/tests/src/python/test_qgsvectorlayer.py
@@ -10,7 +10,7 @@ __author__ = 'Tim Sutton'
 __date__ = '20/08/2012'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvectorlayercache.py b/tests/src/python/test_qgsvectorlayercache.py
index 2dc048eba2..91d2157dcf 100644
--- a/tests/src/python/test_qgsvectorlayercache.py
+++ b/tests/src/python/test_qgsvectorlayercache.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '08/06/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvectorlayereditbuffer.py b/tests/src/python/test_qgsvectorlayereditbuffer.py
index d06989ae20..d93d9e9824 100644
--- a/tests/src/python/test_qgsvectorlayereditbuffer.py
+++ b/tests/src/python/test_qgsvectorlayereditbuffer.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '15/07/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvectorlayerselectedfeaturesource.py b/tests/src/python/test_qgsvectorlayerselectedfeaturesource.py
index 17b82ec180..4ef1c9d61e 100644
--- a/tests/src/python/test_qgsvectorlayerselectedfeaturesource.py
+++ b/tests/src/python/test_qgsvectorlayerselectedfeaturesource.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '2018-07-05'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 
 from qgis.core import (
diff --git a/tests/src/python/test_qgsvectorlayertools.py b/tests/src/python/test_qgsvectorlayertools.py
index 39952e2b1e..2743515107 100644
--- a/tests/src/python/test_qgsvectorlayertools.py
+++ b/tests/src/python/test_qgsvectorlayertools.py
@@ -11,7 +11,7 @@ __author__ = 'Denis Rouzaud'
 __date__ = '2016-11-07'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 from qgis.core import QgsFeatureRequest, QgsVectorLayer, QgsProject, QgsVectorLayerTools
 from qgis.testing import start_app, unittest
diff --git a/tests/src/python/test_qgsvectorlayerutils.py b/tests/src/python/test_qgsvectorlayerutils.py
index 0d078b97b4..e0c62904f1 100644
--- a/tests/src/python/test_qgsvectorlayerutils.py
+++ b/tests/src/python/test_qgsvectorlayerutils.py
@@ -10,7 +10,7 @@ __author__ = 'Nyall Dawson'
 __date__ = '25/10/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 import qgis  # NOQA
diff --git a/tests/src/python/test_qgsvirtuallayerdefinition.py b/tests/src/python/test_qgsvirtuallayerdefinition.py
index 9021ea4f88..9c0dcee4eb 100644
--- a/tests/src/python/test_qgsvirtuallayerdefinition.py
+++ b/tests/src/python/test_qgsvirtuallayerdefinition.py
@@ -10,7 +10,7 @@ __author__ = 'Hugo Mercier'
 __date__ = '10/12/2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_qgsvirtuallayertask.py b/tests/src/python/test_qgsvirtuallayertask.py
index c92fa0d09e..213fddbc76 100644
--- a/tests/src/python/test_qgsvirtuallayertask.py
+++ b/tests/src/python/test_qgsvirtuallayertask.py
@@ -10,7 +10,7 @@ __author__ = 'Paul Blottiere'
 __date__ = '28/02/2018'
 __copyright__ = 'Copyright 2018, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 import os
diff --git a/tests/src/python/test_qgsxmlutils.py b/tests/src/python/test_qgsxmlutils.py
index 866aee8002..83e12291cb 100644
--- a/tests/src/python/test_qgsxmlutils.py
+++ b/tests/src/python/test_qgsxmlutils.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '18/11/2016'
 __copyright__ = 'Copyright 2016, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA switch sip api
 
diff --git a/tests/src/python/test_qgsziputils.py b/tests/src/python/test_qgsziputils.py
index 8c07b1651b..fc00819db7 100644
--- a/tests/src/python/test_qgsziputils.py
+++ b/tests/src/python/test_qgsziputils.py
@@ -10,7 +10,7 @@ __author__ = 'Paul Blottiere'
 __date__ = '06/7/2017'
 __copyright__ = 'Copyright 2017, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 from qgis.core import QgsZipUtils
diff --git a/tests/src/python/test_qgszonalstatistics.py b/tests/src/python/test_qgszonalstatistics.py
index 5652b35307..03c092002b 100644
--- a/tests/src/python/test_qgszonalstatistics.py
+++ b/tests/src/python/test_qgszonalstatistics.py
@@ -10,7 +10,7 @@ __author__ = 'Alexander Bruy'
 __date__ = '15/07/2013'
 __copyright__ = 'Copyright 2013, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/test_syntactic_sugar.py b/tests/src/python/test_syntactic_sugar.py
index 3df6b7422a..fbea742462 100644
--- a/tests/src/python/test_syntactic_sugar.py
+++ b/tests/src/python/test_syntactic_sugar.py
@@ -10,7 +10,7 @@ __author__ = 'Matthias Kuhn'
 __date__ = '12.8.2015'
 __copyright__ = 'Copyright 2015, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/src/python/utilities.py b/tests/src/python/utilities.py
index 9fc4190be4..c3b8056c44 100644
--- a/tests/src/python/utilities.py
+++ b/tests/src/python/utilities.py
@@ -9,7 +9,7 @@ __author__ = 'Tim Sutton (tim@linfiniti.com)'
 __date__ = '20/01/2011'
 __copyright__ = 'Copyright 2012, The QGIS Project'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import qgis  # NOQA
 
diff --git a/tests/testdata/control_images/effects/expected_painteffect_blur/expected_painteffect_blur.png b/tests/testdata/control_images/effects/expected_painteffect_blur/expected_painteffect_blur.png
index fae81fcbdb641367e4faad9ebf32bd6b977f5665..c108bd3198002022e1c6199b9013af03e2c00ccf 100644
GIT binary patch
literal 6008
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

literal 6302
zcmV;P7-8p$P)<h;3K|Lk000e1NJLTq003kF003kN0ssI2|9}Dm00003b3#c}2nYz<
z;ZNWI000SaNLh0L01m_e01m_fl`9S#000<4Nkl<Zc%1EB-L51@k^UkxtNQfV&tQza
zehF?CAt5byNFad_LI}Y_7~>gRGX^0H2zUnWe7jun7Rap4r60jQo;lr>8L=0U85#A{
zeSYSg*}WjuYSroPs>=N8i^wk`qw0`|;B<Tc{rB(vTLJ()dGh4Uz8`$>!QvC&%ZKRI
zO}<TMzPtBE_qDHx07Nfyyt}kl1lGL|ivXBSyeiZl9IWkeh~TXGU-Rwej~^bghXrfd
z{WSz9KshyTS?uKjdU(hl3@j0H+x{C`e7K3%=7;8`L@Fq2)I?}L8{A`i7_hd0SYme;
ztWA2%Chi4H24CC#A@I6yur|lDVpDg|r+m{Uf(8e3g@&kG-`orz0<U`oYekj?n`V$L
zeEh;x{h!XnmOe}WvLh>Gjb-<a*FAx?HEa*f#x`^R@rp+tED>2sDnmqMTW&oJUUXhb
z-$d^&<f47@_`Ub)CtFVH!)MR*m*S=Z+j!@lcYyiS=IrjnU;nyY5EA#T03dq&_;KIS
z_PWi8PPLb1)-{HP29`%k1R|k*OY8X&Kq>AVG<zo^ql|M{s_Dg_t5NU1RK-hybqc9I
zcuy<;YCfJ;`_=;*SPi2Z->7kU2VeJFDHV^@){J?F_7Y&t&1!~}LtzP%F^jqX*e*U$
z50!I8M`VVSGOL|Y-B~xu#i7=Cy<EF1ST{jR1k8N{sDCmmSpCOsyC3R!By?JNq=YCk
z>jv9-)d2PP$~${mn_rSUwA+KVn)qnG(S1-U3XO<>nG8E-Fh~6aAP=z}|9FII0*4WW
zAVfqIMOXwx5fCD2NX;CXZ_aJK%=~yuur`s>{^)!!LTV;PC}xyGZd*TBu<ENFumgQK
zz?+_KhoJAVl%N<92_PceHb69ERtT+somO|o>o#DW;MC%s8Vbl+0V2gn-xaJ<hMdg+
zg8^-4dH%eP&@l@kP>e#9N|6v4U?LDP5rx1a3Li>A2neAbYJr#M;6s76mYr^R#t0G#
z_NRhXij+d_9n6w5F%P8>a{$1sG9t7?iHKZYb^`<`1Vu{Uhf<hXLSRKoe*;Jetk*-k
z7ee)wMlpryu6W%HtW_MdMylJC;w2)}M9j#UO3`=8ncAP@GzDf7iH(mC31%!`d{KRK
z2p~d?AVNwA0V$2s#32+SCXyJLs5Bo>A;>h52x5f3Ggs6a#qNw3U7LenXIc!S_kQ&&
z(TU8Qk(yi1DCJMT|9udN%z-(Igi-=?5(&(a`G?>CK1!*8>R$R10r0oK{S5#EXue5F
zq!|6+M?aEbKuR<WNU3h8gp@E0fBf^GS&cLV1`vYSJV5lG>3f?iZ>;aHVb&R>I=Q?{
zYDgjHq%h52sTBQCzWfq7BWEe4`ZZ>0N505eV;2!oiC{)oLXa=Nq+!4?$S`0SXdE$)
z7zQbYm}4m<LLm?{g}}<Gg>iV9dSexK7Oa)^&3w6@X5qYZuCL=U=A4)lb1X$+N+O{Y
zMGcpiYM4q%QDTZH(}$dONOis=5@ux<Gt*aJNlG-17zT`^OcSOF<4EHurBtxgXNh2e
zm$S#)s@BtBt;}<Q6s?h(Cgcq5`ZNut49u~VREk1oz(s(bKbJOLnx3%nj5$m5?)uJZ
zjHO5j^3_+A5{^d&3%ecVEIBK)2IfLk^neYcj+eT8kC%=2I=oJRby|5EQVNzZo9EUm
zOw%NX109c}!c@w@oJxs}Q|iCu#fxgQCc&g9UQ$C%00Bh(j(Q>yJby03fN7#}>|D;7
zn1wmzOd>jU)}9m1_~nCb9ioL+w+8Dvq^h@4U0w=Gp_~;a9FKB1;CRI0Fy^eBN;wZA
z23F9(@Nnp~vfNf1Mq)-wxd?z#m`GGE05}{_3SyL;D_*4_XJJMuV<~x&<Wh`?*g^=v
z#01v)vYUc+UZd-wn>f&M$}}lhiV+S6TwTfGFyw5sO3lFs<_H949FLm@sOO4p!|)2~
zymX2@9FQ|oQW4kPB{NjP0SG}vB*uOm1xQh5CJQ9Zon0p;uJKum2)S;nGSWe+Zki@c
zlN=5>9O&vwuC8!(HRL=n4+@jgN(BTEL~uOL3{a2XFbZu0AxJ58<bbGlou*Dn7g6bC
zIx1MG5x9z5&2x$Vn21b&Sz@C_U1#u`gSBb2bEj?+G-yDhFQwJ-NQZ-5UD4GQuC7Mo
zl+J?+7NA-b)70a~#k4CDF<T-OW>MgnnF!N_Qjk*Ly@l%{GE9@SSrzK?sLDxEj4W()
z&dXckDZCt5n*ojO?_8C=Y!Z~?k&Z_?9B_4IucXpJy%i9d4JnOs`cO5RbIc;ux~P)U
z(g~{5(R4=ldc%NrMF%As5lX2@l_D_;vn;}FOCn;q*s<Aq4t_K3`S`u}%$rD)j*5{S
zkAME?qgcvNN-AY6Wz2cVdB|Bg^{sDwqcYCe=WOS*Pd_C~W|>56J$dV`x3=@>As~cL
zKl@CTDu*CI2|<;84k3r|pWptr>~^%@W51XE9{W8#dW4G$>~`4g{_vN-6e5n1ZIW$j
zuIKMp%6`VIZ7}^Tt5gz^mPH`uAd*BPbM@j*D5U1ds`%0g%V~w6lWALnsaMFj?0nWt
zH<kjCP>o7R^M6Xi7B<V_V6ajMh*4tH4XCV-k@VCq)+2I}-wCC<JsZw`qI7M*k@?h|
zb#_Zld8!H>m{qvrc&uRAgk|nrMRuE8?UHoIVg1$=g3(HQ#EcLE++Z!c0AQM`OA4VU
zc4DL$C4?ZN62t=UcEamZ^=S!>Lv16EZf2M>T9g-!P$oW0i5B`O#moSkpCW@P1iDr|
zYwS`A8WT0&&dec%iZ~h#4+j7m08j|f06RwA2+jFh96IyxXM3_S8=j$6-!28EL=m0o
zQk(cxPpNHoSJf1mKY{|(uZNzkb>4K4*g%Xs=KDngkuU?`5Y(;(z%;4FAx0dJh*46)
zFkqT643U|MG{)W_m&0LgiRl_zIUAW}W0;Y%s)1;sjA?Y{sGZhnOXZ@U`{s*a;v81(
z53>Lv1X2}h5eYMFDXh7(I=AYWwR>iXF(O8?{KPZ`ks!iNDlW*?Ve$lOe=eoNl2(pW
zJ{VNigcc+ZPIl_64!{R}4k>?9!Mw7;sTTG+K7^XF)6}SX&xRMN&{Zd`-BX_xBc&vV
zgXVK+90O|>x~kj-xt86y#=)c81uZ_bggUd7LOH9s1#?~^K|?={{?rmZWDO}>H>Q=K
z+w2L@T)6r8IbMN?MW~dZt}TRWjHSr&NGV~OWSTVB7&XsBL?Mu)_BOMw0c)YTynwLS
zqLl97E$%C&;-xh7(oz4^+1h-TzcAN^vQk%W#IdR3rCwizLa2;ZW=&JI#A%Y_5#y*c
zco7LeF<VyX{k2)R`Sxe%f3K%SkCX;h(!&en99xdKVg!V?V4<rIJydR}iG6!3r2Owq
zg895kJFJEGU9TviT3$q1uWKc?ssvkPadA?oh@DO>J>uWn>%*r{13)dWq6`{JNz=5;
z`6u7~F24LyE-&%?IbOVgCTCP$F@N^Ye+G+<oJ?1J^tCtM*Z`un&p-d%_0bbu0DSGu
zH|rWAS}I-FzKD?0|NQG;43rR5(B~MZlnyaorF1n6Klu62@!D(H@3GrK^U*QZ7tyod
z{HEqPY%X?_@|I&WMBBoYh2xfNP!dVbqFD!@Bys!dG*9z{k*u!RHO*@a(~Zp1EPAGC
zbk!12qA7Q%l+b1#u~@=OA|uq<j)m=C%tLSkv95G!plj+>Pp?vYzD{G|w+)-tNZl4Y
zYh2ej>Or&v1{SlvLJQ!lGxZaWgRHxG>y^i&gSGXwL2jw{z9AAsBA_sd2~Nx8DN;?T
zpBwNEVcH}Y+T`fHj5cMoGOKl1U((i-W<Cck2es+ATU(joRwH}0Xs)VLmwQ_XbhOl)
zAD#jCP<N7;t8T+Km~6XOT`-G>Y;l~eb^<Ifwc6p-LD;pbZrf3MW@3x$w%L!{Sl>3f
z3rpl#VUwwoYLzYvV9rh)v##yW94u*yvHmry%{NOl|0Q!mi9f6PxHh{Rly{@m`IYmT
zTQqB0c@F}l6hf~<q1#M28_Y6~PV*0a&`UrKL;dV&R*9J!dZ>10gc?Gk!-Q5yLGD_1
zr|ge;`mjr|uDO6Ke$8g?)h}-}uzPQQHt-uRJ7Dcr2VR1;wh(pEt|#3jWpP>le>QVo
zZFG0;HogDkiMgaM6xy2eFW-5mN=;kry1K%P7j$`vFTVKizy5V!%8>Jzvu3rT(=~6u
z^_ESJvSQ!opMQRaZf`8~eeEpSz83n5hzbaGhfMSzZ@&%8`3(b7!fuC0kMQUbz5e>g
zfB*Z7aXb#gF{LTS5~HT@IRqy9<-70JU_j#mpN!XBkZ<em`v|ioNXVqYE3~fbTTdSN
z)<#ZknfA`zzFue9<kd4|s1X^r4RHZf@1pOthHv*IueL$i>iTk>#ub}j6E&hUhur{6
z+WTDax20X(4x!Rs^VwGJvH)eBR9p1y=I#8C7wcwL$6)<&eG~Mm06L4#qRj{61-CYT
z4Rr~CdLgit)4_o&8se@8aFa3LvI))WkzLioj3X{BA=FD%(U^5ZtK7cwJ`yvej61fz
z#Enx{jJ{+R`UN0Au=%%lX}Y83oo&qqt_&43nChBXOX|bc^cO=u-EI^cc24QA+a;1l
zE^Y{FQ9@^y0pul(kAwj`@--b;{n=@?xHfiVo6!`z7`4{YY{C<5G4XAlIsx_OMp=j~
zpITdZD<X=KQsPz@EA8fx5Th2o^p&d?Gm%|(Znak}&n4J~qyM!ayCT(E4a@Al0WEDd
ze(6gq!&B0#+`9S?bQd<C!8XyT8E7n;S3nM?UXQL<sTIX?tC1D-0)m+#td6-n<Jor3
zMyOU4bsuC%nPSoo>&q$|&@FL&icPX_I1#(fb;I(U?ewCMrBsNDLDp`0;8y>+q<1sp
z?nIiexdm)SEAynyQC8P!Ff~Hejg%-Q8it}J-_3{k@oq?s#mP_R-~ljy`1GlzMl}te
ztgK<0e)_%d(d8vBFXi&G=HL$pE5rTtlTUhDRo|@>B5$fjKY^6x;AO=}A$s%cU++Pf
zN1q5Oee&67wWx+Dr!)~AQ#z(}H4KMg_~9>pL9e|g7Z=#=XdFcg=o_rhKKxMpL}{b}
z(3ir<6*;$V8q(sD=z8^-nL|KI^<=})lgpZT2!V-$A8QD`y2xzPk`r^(#JT_eq3vtA
zBhLsY4l2i$@-eanG$AN7)GU<zB(M<PtF|>8&Uf}2)$Vkt)5<W|i-w^yUvX@^i0vMN
zEGEHqiS?o<TS)a00^OZAkIo_nRsqyk<Pb^-g$OB0D?eHq-F2Sy>`epCFLdufBtQXT
zt0B;3aV@kK%V&w`GPwr2JvY+$MRq%-;pJ0ct0}Jw4nIOg%3dke`7VS)R1`1wVl92p
zdw}e^nw!I1rp|3}4%WgFsZ|lS4^4I|L0Cj@bC7X_7QyF?VX$Qjg+$lQSgRitp{BEE
z<z(|@;cQ{bPp1BkRgaV#e7$SO)dJ=aG`o<AB&9l`FPxnt$0_opnV(t#C$rD$q{{#i
z6*I$e6fG@Mw>1o4MoNsH3k$keTXd=YlUnEj5yUw2<y%_63vTadlu&KTLrNT@@klW$
zF)C!{vm^u!Z)YpDD_X6<+QMk*=G)aKt-lCC^iGGAFbuTYRc4i<_c*AJXT6E7Q6``(
z(hi3vxv0gYo0rYf<d(fM;cnu<y_d$R$yTHrv$zSa?%n4Oeu2@VH>qQ^)yoCB)MqJW
zNH6IyNY1p|k*_ddhDcHO<kUQs5)?t{cOg~C78hpT7xi>-m9pK@m`0CLnQrb}k*Y7}
z;48T_ZUe+;2Ts!p8xDR>E&-_7BelRnMCxrJDPbJZ?oU-_QQI*a5IR(m5CWsE=Ic<E
zSqm8fr>#X)aH1uJs?XB!pxv&C5X>j2#VMN<snTq)7#W>wr<>6VOP#eqZQgHn@IeKH
zrk;lZ%ruTDg)S~2^%e$QLCIErSW0XfqSn~hXuZ{kepevR2jHh;QAX<#3@oM9IAR=)
zO~)9gwypk4?8oZkfrS}vPJ$hhjXHS1vht4~KVGilSe05SfBfxl^+v*&^T@2Sek>*B
zJe2ZZ-~6WN-8{|x>z&fbnMD5ikAKwlZ9TOvUbQRq_S<jw&L{!h-1o_+pXvpxF;?^F
zYIooI&UbKe0j+@7YWUrbv<`k4KKj$2it0qweLml-&$v82Cw4QO#o2yRhqFz4#Rw4&
zfkZM9#W*R%DRr&C+mWB?Tbd9=!d$fKuC2DK787Hc1>t6N%DWih<4`p&QwcGa7-_%9
z#f4m4;Nn7dI~vD&8)uBL9GsKNWF0e%ZsN1nc+I4sIT!sTMs8Y89~=|f;A`9O>+k12
zLb+K&2rA>1#lDgpPCB@#+cbKy`=tSHoGKxx(J4&W?@2clDP8PINkZs(kuABfOwODF
z>*P-jY2#N2s?qgNiV=E0B<f>iq=7|5b+(SN)_LZPoJ$B=#a>~mnXQJkdL>{+=LS|b
zPPMd$s)Ul#q|DmyvD+!FL_;yfOY;p4saee2$9hJTo@v%yH>m^tvR5^)^_hCZm9|nq
zM2{Y+`AAbh6r&uEY7RNZV1=+P0O~84!%#W6R#hqGl$fXhCB{NjHD`=D#wkX1QrPWi
zw}T<o`XGy(pUZ8{XmLZZwvEx_W$T(myiiOcHNjR2_Iokm7b6{ywa|K+FilekfjPuT
zwx-+sJphbjJ^S1M^-vQLJMrnk$}wWUxBKyHfDxl5EN3~axvRQ1ueQyslX#&CLQBHv
zy~mbKCejK#7Lkh!Qd-4WlR3j6$D>NwDaH^&(7Gk_^k{Btx9echGDmz&$-Al&<J1Dc
z9OJ_J#Hm*D+4nZm8zOZQtdn@5x~=wn4q`y@3NdmkJQAWvMEku`sV<{yZSFA8G|4m_
zVvJf{W{`PiU0igq8dB7Rl7eMOW%ph}po<F(L(Q@^PMH>6+|+;G?rsVe7GOKPL^DcF
zsds*<BhZ@{h_KrkvufAJQExh@X*v#r-eEu@QN#)xtMYpEs9TE5qwAp#DV2s)A<7mx
zhfqSmZf8ODEWh0J=NhRSCbqA87L8Z-4KKSEnm-khikFtwsizmws%c|ZzwdmvlWDpd
z$54uLs-~XZvuNb?*I^2%1<BHG?z$SsIu*uPA4=2ImT25#;@)CFU6itz>GntgH+U9J
z{hfVe6PDfQDz5C8`(rVF|GVGS8sT<>N^Bd%{L>%*nA#JM^x+j&X+yxrAAjse#kM*b
zLIHmAv!B^zkQm9(i4iG%^oKw6-<t$&oO-MpeW5~E<K1jGeI!(OVNKlkB?DA3A<Q)?
zs%bBKa)p|krYo4$ujBRCr9Dn-R&EUdxZ3T!1Fm_rh8n&0TDQtJ%~}3aC9AFX_-Mw5
zfor6$ZMS&X*cz{e_|m+n{(#yuz|_Hs*pxtZ$!EV8d(NFpMyp+4rDPRCFb!#oY!?^O
z9;em)k!4EN)*7b(Z2GC&B6T~kmUwNR(gGSHjU4qQA|#^8W!=EV#f(tWYf}lBQe7(d
zj4+$3Q-{kA+iH!bmEr8p78z#&&Fzu8HCQ+!DTw@l(aJPh^;@l;7lUsY$edK$(Hv;@
zPx^4Yr~%3_%<`OzcNhB2WK`?tU2wV^SZJo<O>%=@y1GO4o;d<Y?}bLqveGcj2qm*;
z{$&esR(OG^>U)oolds#Wq&HTcXWHE#>N-o{V3riFPR%1|4of$H`n(UvsmeP5Knb->
zv=`@j2x6?l*fIyyZXfrl=lP=POCp7reYUc}gibN<*Q6ojYn*js1{Of>9RN2oWOpKI
z$5gP$6H3i%WqRhGULGmj&m+!#*l4#@SnW+q3L9j#1@|Zz{|-RY%B?Ngu~?FsBQ^Ww
zy&{Esdmg;U%YWDw(9j^$Z|az_g30IL=SQ0*Qeu=XfYzpm`$G!2kLSV94(GO?Jbnyd
zgF7Mso;`iqKfyBN`0l&!x`Qq+z|&{XY<umM9zS_PE3EH4BH!-$e^{Ip7QUJL-~3kF
zVnuo(>wIq0!DLEhw#)ss`~UAKOJM<Qf?^)c@73FS`5tr2T3eYN?EzrY_E7(Kr;lf`
z>S4_ou^Gv44%h%%9jBl4A=|_Mudp>zHdof~&*5^zPaYa3ZLjLT&@B|1`(%5ZXH1Fc
z)x)IimHx}V8MzjpociU7_9`*5_G-bhHeagS{K1(o|4)#@P4BSycLVTmux{1<7x&h*
UVLhQ@+5i9m07*qoM6N<$f*j`<GXMYp

diff --git a/tests/testdata/control_images/effects/expected_painteffect_composer/expected_painteffect_composer.png b/tests/testdata/control_images/effects/expected_painteffect_composer/expected_painteffect_composer.png
index f1a360c7806f1138fd9b1db514a0d06bc1a04091..ecc82055e7f0a9c28e15bdb2a2cffc9d24b4bdcc 100644
GIT binary patch
literal 50665
zcmbqa1y@^Lu%)HA7xx0i-6dElTHK2lQd|oq5VRBtuEpIQio3gead!#s`oj0t`vvc;
zgk*)a?zwl)oS8j)_6br^lEFYFL4|{Z!;q7eRD*+itNi*#ehd5MAU9tS_JQIctK$R*
zhuQu5eiO@#NeTz|0ZvZxlZI=`QL0M<p49V;*o;Wk5ZyO;(tbgisE^d^U-5@^jyc@3
z3T~#jQ}SJQiAMob#G@W7+Lzr91w^VioRQgY-br$yk<O*Km^B{W$ec`TY3~)zx3kH&
zP^N*CRxoFlHLnhC@+D|OIV~(-M~yXcX(}A+>nJ6N&r6Mi4Xua&@0YQMF=Aq3O-)T1
zdPd#<Mwq&UgoKw@Yab$xg|?<<u4R5MY&e(5%W&0H!^T1zwJSjPVrRs<;im<8#KPY<
zeD>k>vCh}?_40(~_l{R`!#EOK+VyJ{OaJ^>(OAF2WkzmXgWTL00HhC3Om*_E*|$db
z<&TwdTGsnLghm=mYOx^L<=of(2}zPESW6M3n21gm%`Xp;qO7*QIXXgdmA}=AONy!i
zn1gK;PB3k=DeUXziL%9>P#Ck>c<l6hvZO#J)ZTp-XE%c!=<~l%!)po`bDf3daa@I>
z3uoL8X3)|>y4|H7Aq4A{T#L1~i?u96l`NI*A$Ku~C{AzTlHNT^SP%F&Vu?w5zcg)x
zXa3k6T=4?nQQGTh1xBB?4I6CO6M9eWZPlbM!fZjU2q?{Fs_lJ*+S45WE-Lm6A>h2K
zRLFTx_-~EtsD^QkH>aa=JVrU|VpM&J6Ly39diFTeXLVA6Li5Q!=&nh&x_t#%7IjmT
zR-pCyDk^3)N2eD4ke8>EVy`D_fK87dFFS5h7f}oXJ@xM63<vsRZ7PB}hG1Y-SQSl+
z1JBH_M%%?u@Wr<orYleR6}O?_h&onzWF|+4duc(J-Uc;u?%i6rU&chC5E>U>vV7;0
z*f=eX$rYu;JvnUDiw7ukxyJnL%K&}2_673z0JZbS&H-0K^EV8Es8itSX@|zT6|UZ}
z5L9RXVl4!~&oz5_4kC0!-_hSU1{;bTBl2s<(Q*GOXkk|Phu1sTdT*uj7a_I0p|_|w
z`?C|*gb%<tC;VE(!zSiqsE&o@OgaPJZ@{s5+cWR<bis+<b343qi`yAL1Up=sJfcN~
zL9#ALI`n1|<=^R)kX8;&qOOdd0&9@_Rb^FGSgt(Hal%=#(Kd@7-6k%1@lUVRuVh9>
zF|Oo63ui)u#*O#I42(V@?9xVF#51kVQ~B{mKm1v(N<Zo&xrj&maqjDVPoneudLNxS
zvRA<FV8H3jp<Wy&Kc#fY5XAo`C#|NeLE0bmEaEQo0<}k|Tkhpqi^ABeWuRf1;z=B_
z=#N4a*8QpePZiG4b0Ii*yxa>x?3rk$74+rH1TaG9c%`UPC5I*eG|HM4vHv(@xxBTC
zzxR-VlJATzH>FgJ-yJ!Y#5**bjU?pCu@OG-au;F$^6cyV;?6+V%gHA0oV0fMqwh~7
zYARNrV5%0L4-zX!ZHcHz#|NR4W(!p$xSj|R0$I6=g0zClUmxfF!BiQleW7KWKJ*^&
z<HJ)zbUBOA>hPk!O(G?&)YlKbb*p8remSN?0pX;CO_sP*chp1#t2|OSorH~)I%4j_
zyozU-H9E(LOJMpEePZZwY`lRMr!9$R?j<>Puw`S20HzOB?qQ*&CAm7xTZ(5SW7vPr
zn?B1>N(l-EKVUZAAN;Nw9c<VLUMOK%aK;%jS**28>I5;S8DF+i(Ayfu%tro_3K>^d
zmTGdpN;Icvc(9|YK%TB>S`M#hqj;lW9Fu?Tpxal?1FhE8xpMxYps>8`;*ua{<k@!_
zA$m~xUGBL==V5oWbY%FQOUNI~B+S!WrsT5iRNkB^R1v(0z;G)GZq9O_%f&j<S$*8)
zQRG-7Pv>>Y=WlN~Mm5bQ_N=Mi819gyTDxpCj<Rq5kQ+4BF8xt369)@o&O9H{5GSK5
z+EWBu`ByJXzh-)U{jQTp>78=6pAS(6*shj)8zd(VxB_&LltgK-ka7aj0UP{liAWRQ
z#+>i)@q48RKbhv<(;~@)GPtez6s>nz_Jh&WfHuU-`ZDw@^K%U#5@(*%{vQ@amYtU5
z%#+nqR=gE|IYW!`(~kwfTt#K!2Lk<-jjTG8R~KVWl~v?B6YZO-eF@FI{yfC?`4(6D
z1y!~`pRWGeCf~>YQ%s0#a>zvZCPxR4)<CaBQ%z%;O->5;HBL%}ev>TF5Usj8T+njC
zvgWtnQ3sKph`UzvrCQ$*JJMqKbwYooo5!`z4STCVLTZc4Xo|R2T%Wil9p@UR<@=q9
z_bIBK!fSu&g=yT@5iWO<gSE|b^9fsTO-A-6Bt|)hX+(bP9ny|C{tO`x6Iy?beGTty
z_p8HMU#DZ8Np-W@Z+ls`eD=`Lo()`%GQD~{s-hT*BTo@@f*Fy#f6(N>&S5hQ<oaF2
zn8Nlv;XYNG-2O;-Smi1GU+L$%l_D>LJNdYGYU;$(DCUuwE#xCi_l|p<h{C&m+L_SQ
ze-&)60ha!RB&I#j>|aTHmQ<m(fhhq#@3ABU-of3xxro>Ui_732-`!MgLC2g>@YZw=
z`Ox|s&={@a5qTUs*XO09Ns9Q02r^FghIhX|#adT1f<|7};C~AdLy7GBAe`hAFINfH
z(q{WGBO1IuRh}P}C|m)l$o=U?53#lpd6l)cdU$$`iPXPf{OzZQ-4qu?RS<}SE!>;}
zctUm*WxW5+oq|eHw_l_sZq1F8PbS>&_uJS@V0!uK-7dVPB}F7K0H3RxrqCob^)F@c
zqzDG3iYJh@bVqa3u;+5mv6Qb!<>nY^#iPn<qdSkXXtT`VGo|Ox4JpDa*L4JLer;21
zq2+s1sf#G#OwJ-BO+B>oHoN<$-~#wxlWmW=W?QoO(}nG0G!`g!zs~gI*A;=vhYbBR
zt3~qeucotK{VZ8q0RRb~ZiFz7i6%d%zkC?7+L(VbHEkhaJG$FR_E*o}F>;i<+MAd=
zG5><IpERZ*+zSx4FYYtkU+>!MAq?|=(MxrLQ}Mi>H+9-YRi%IQP?iJ|R#bk7(p&eY
z`4XdC+<-?Vo>far^O^|$M0%GUQ-~U^Jl-KxnVB{}I>sxDNlo0$e8;j|G-$mq8qzk>
z#2`!X9-uX?GDFzhI68eae&;+qj(|t;oeoH`gP8RO?px@;GTt;#f|dt1KMB=b?zy&?
zC<q1Wk7YH#)k9+oNEdft^n=`c#^yzyhP#)^wuy6Pd1fY*iJtQ5D1}l`apUo_%c|2@
zuRj`Ax|h&38A^VcUn<~1^t3&2zKT1|i-cV0V>a^0`{ZP&L_W2jDdU*_;~PCY-9bBy
z`5ASq;RMbCqM|PiyT2<cLen?t5%3X#{^Xjs^|b6*FM~v)u;q*9kYu#}fc@o6G6|$x
z`oS1IG6I8Zar!5;@#%U|`*Bwc$!yeyZRhTbe3c>CbS}|6PwXy7Q)j;e%Z!I~OqlGM
zkL74?UF`1r#YV`)&PbU2OjO%TOP-58*62WJYDsK3nGP~HR#c0yTJc@}jKEom8ohpX
z0sQNJprPtY7$<J=ffR9bd*3dfw7Oo;w@l^p6JA7`nzo*Qd0{U5l|nYZ`&Q!Ej)iL{
zlUCk@PEjJ6k5`Cu+i5p$B&p{?o@#fmdO!eDk4<}lB2N9W&gBxgL75mA*C?ElVv|@v
z<*r9CI@Go5jfHB2>hzji7J~h*3KcYoiAnA2jfdvVu?(8)R|jJi?Z@DM-KKj}c+8tN
zQMi|YrWx{8CaUDQSBIURgF9`V!yjS)1h}xhdmE<Y8yl^5`mj0_N#N*R0>Ltvj75HV
z+o7TuAcVDc2Ek{uwnXXC<E)hatD^3EenG{K<>;hp$2K?yS<?R#uid7i0vCrcA;9+^
z+}Lm{l-wdSAk;SfUea*Aa55$U?3SU#&~ItnAHE>O$7nomZ1KKV-zPSoTL<U*w>u?3
z3Rajo<>Pw|yuj)zNO|DB?RfZ#ip~i{k3da}{eIi;$MmU=Q#^M=RMwG;kCr)>ydgx~
zvwuDIuyxxgp!4uxFvIH|9TI-|lEnW8w(2sPIA^`(#*at_Xn?lZ{e9;0=JO_<Drt5d
zE(fS?wj~fh^xNOnmYW?i;e?09)dkUXoaaZ33ODqRDOW$RMDSk5y!p19LHhc~*%4ak
zWCa3$mG%zy#%Uem!ZVZPg6iBPAV~T|>KDq)S+~7{aKE67#%Cs%&kxeLozJSTsKVJ#
z(r7qJP|(;w;bou}8q8+Ung(!z5}TtNRG8cj#-8EhE6N$(#2fW?tYv~P6w)I&!7LXX
zN*=fCx4UW9gZmN&O%xv2^F_~3tb=uDz2RxXp`TKr*EJHOQGb%{&hX-I4-or(c2eSg
ze;w5!uvrRR@uqBf5q*5TP*n=eOZ}(%-f`^Xz|V~KV|MEyWb>pvQ=Lw+`Pwk-qWvXs
z7qPjG@YS?eGJnML^<wDL18M3SMR{v5=V-&R5VHb8Bkh>ZX>5G{Q`-w6;Ryd7k&dNh
zZoHwc>wd0JIJs#7uC9>R2f>|IC8bq<>hv*s$<*;JMiPLcD61hx0UF}^qCLzUo4#0U
z<C*`yMC7Gv9fs_tD0(W#B2i3XL_6xt6`t9q+wa!@5KDJ8>23AQZhZo+-K_GnHP2tv
z%yP8*SeI3Jiss|eg$e0v&t5H9Z;}9pGwindqlehphek0I^Q5ShWC24@2mrlHMamto
z^8%Wbi#w0YN|uDeuvD#Vf6jmf-P<E>*pi%1$c(HY&mzMz2)QlQ#BLjS&DiRmjl%hz
zaIHHD-do|_zu*?PZ3EDJu+u1Uh1*rXW-$rQ$`Nc<qD@a&PP_LQB_1f`rgSU7Dd-Y4
znmL-Mg+VeA6Ui1CG{pT14B;(_G!YKVKC+2P6hV4)%kz}YM43@isN%TQY9~=whwt7|
z)jEVy7r=@EgBwC_66fFOC<nHf?ec?N2s}h7MQ(d7YfM-$b##_1HXEmuR})f~Umi|m
zydP}M{;ZFzygZeMowXL1ISTB4%;>@r%XvKUo>=kONVaEd*@_moDzaS!5jhU;Ia3{^
zm@bM)@p`rlD`r#m1sbQJJ2!V_k0Fpa>Qc|_4k#v%&zpa?v$Lk}d#wxjsJ84HX^iD4
zT;Dl1x2<=%@gT5HJ%W$s()+@pcSG#EA`dni1BVayhkU*6<@LW^n@ZvhgAb51LqnI-
zJ<a-hg;HoRV>8KdtN-v$bJ{wu@qy^*NgO41&I&e-M5`;N&b2%z^qPrAQqg#MOH;|T
z{)@)l${8#t#S#z(%Y}+67Kah-@Y^;DB91j9Wns>{%?Rb&bNMTt8>4y-BGRUptPq7M
zg}GW*FjV)-^TNKV^t7nhX0g|J^sIW5beCmf7vkrO;ir}0;@mv2sY;IqoQy!>*{T+p
zi7$VAtPK(xhuM2j;ymIxl8Ll49g}`W$RG#}1=0|O9%m|uhDnvu7CmC)r<LNYr7A6b
zO=@32?{)ec!QU4t9*cb8VMcrAM#y7`6~SqDL;M$9vUIBLVztl3PRd_B)D58=<oTVO
z2k<BiAJSfcWL<iuqmf0fzb;CWTfneNTqF!nm-sncDZ(ow3kEn1cTf!r=ZBj$XH?DC
zo^4_*rroc&i`Jm1MA~9`ulsvenK|pU8JfD=Bt4weZ}#8q;!Yd85dGWehOn{PsgTG0
zlwW^HJ57n12XqSSz^VHx%I5`e)msw^Ki^IWWLpMIPQEQH?0^;izDUL=hOsR$^d4Rt
zSx}C8$L>HE@g}V*Hxi^UbCfX(?@F{;ic25oyzh7&!p`)T9XyuyeVebXR9VbG)C%w2
z+tK}7X&DmBW*e&nA7~mp?#F_QQ_xQ*14(Uj2O8+F5M!%n%ZBfZ4$ICXpuc{8D!RG_
z^6}qvbvbxv-spYc<&BJ1i;sS<@TGJ8gf~v~JP@|~^$6eBti0jZ6N49C6UFP~XNmHp
zd5Z;yd3|`(;XIpqF)1J1u0DMqZ&Y?Pg@o{S%?|M0qK`WQ#b7Wio=dy$R?yrB1$f@e
zM!m~(Q0-^cAIIJr*!tWUg%lJ~PA;}`{UFcQ#FCImEUSpo+dY1luG5=|ZIFRCmSveg
zgDP>Z9JlEpgHQ9wOX((mvX=`%HsF|<@jr66X#cf?u(E>2&T_DTuPTE(8IDMSB}n4@
z82f%SN|dp=IHrfgKMZuK_txoV4=E>CY8u;mzN)YOV${N=PF>BavZ`1~q{eD8N5%Cm
z<le}|n=KCXhh;m6=CyQEuWsqm;7<Fbm@fh0QJlIIz*9Gh`Le_b4)1cpJbauS2Jn1q
zhg|FwLU=^*f+JSFMg=>>;TZe?Z5|vkW@+PNI15xos<{5{#UugiPGgas4}t+;v&)P8
z52|$vrJMQ~1yw9Rp*1R+x%JsIE$+|~otgYpEfKTOFcnW(-@`as_dDPh$TdjU)*$d8
z_jkiF6L#6Z0dIe=aGQaC2P_gNfnAOWMqviBm3O~Vo}a{0_)i|apNfOxuP;h;VmUcg
zv}KHND2MS(l=}sD(mwbp+-!~d8B>s}c^p$ARrBVk_Q`NXg&SLeQKfLZSafSk>`uRh
zbVEh-O8o7878WhZ7dH|iOCnm|C*;lKR~G#xsLVTRZHZ51afEojiQ}?=jEwwix-*<X
z>MTAFSXk%WqG@ZNNY#&*(Icm9-%36dMx=0+WamAoCgLS(`V0weI#yetrOUIpJ8xWR
z@%OCM_|=Dp3x#<(G3RwS=KUM|$#-x_8WepvjY4V>dh3>T{oZnq<MTs;P3nICM$$x#
z2co5orWerIOD^vMD?T5~($TC8pgfWJ3I%+v3=p!PMiG>W8vuXGRtiyvKj4t|zC+W{
zDmu~x@22t`+-BxV?93mh4R}ONz(NY&$9EJo#Jkw^YC7Cy;o{*e0I5K_^r~#z#oXma
z-g`$-n(Ia!uCk;?2sx_+7xDV{l+XI<cqdVa6d2C$oay+L6QonMG+?;_ODqEcO@j|J
zoLJopTEnyQy{)<B0vTupOI3>-%vx`SjU&U%DRAJ0JJEj&(beu3myp$3X>LXvOy&*|
z66#|kBl`Pg7(py+&tNmSYMJc|hZ<BD0PRYoQ{xmc!1%zQedHhPRqW?rmb*=Vsm6Y<
z1ke09hy;cDRl`p-*RQ<Rzouu`N*3n{k#y=bXsR+S<m?MuIK}3Re8FLgOl)@Dni_Pp
zElzjavB;U<B3pSX72@S|?!LQzE|dL7FC|4sFZ8R>0QNMFJse^W=!GLZdR`AuXU~WC
zK>Ei(pyUE)FQ%k@@P89|N+Adv*N<iOMz}{txVVN6RBddwwLITfJ>Sn3Od2JmweIn^
zF)Aqqs1)GLV!n5siW|ia<2el=YiYqLe4zE@{)DSEq)r4x_8%vADX<|U;?6r-um(35
zPAL(!`#ET4z-XzyglV6?IRJGsiL8u%YN$hK7Y&3LJ-fuHE&6yl#>o*+z140qhuwS>
zJ&Ddw0zGH||BMigS{s#GyU#^d^$i8|t>Q5=QvY(VTzb6R-`+HWDCQMdVb*>PWpa;Q
z_G&^9j|Y%Ac6?Kj21LNoNdor+VViv+c-lwC+$8`^!0VUthQhKe<}9K_n8&Lb70M(8
zdR%M10Nv~Z7x`*g8d*CwN$z+6YaPd954_<{KU37_RPt5xXC#e7Gn>hl-OC4iUkM-Q
zNjV8U8G$|lVR;_n#uEB?hcE?L`m~kB@qu&#H-!^q?!PX;is?}I3kO$B#6kBfH92Sq
z|H{{Gk5tW-0`Yt@fy02M)l%9+OQPar!8E6p0$_BvSV*4mmr@X2e1-e1v4G>pbGD$M
z+`1*|pD?eKu<zrU1z$=BF~!5&uSOLtAS{85JXS2nKg&5s(+;CH&?Kn*irjCs<c!Bp
z=(i);Q$E}uP>cv>creZXT2BeK*p;y`SHbWao|!-yFH@42`niiI-~cCbmosQ+%D+Oi
zw>0l~BbUia4m=?O_VG{SfZGZNa$pg<)^Ewl%*~JIlb?uM@>DrQ+BLxkGJxja$MnJP
z!0oy_FNk_XcG_jO3<{6PQ4RbhV?-!N8sk{`CQOJfK<?v1l22W3NTAR&j)f&>5qs>-
z5`0Y!4u5T<Gjq%N7qxm8u)P9_vw{=3dSfaLKc;gAY)U?VJn7WzQ>3yzMDC3Pi<sT%
zlhBz>MT$3u{Tze$SBK3``7YFur^~5uA9x><8=8<7Y<ijaulMC#+VsiuiDw`#dGjPX
zK`u|`z5BP-#Z%{h4qI%y5HEX4ncVSL!RGzDRRt*O&8mc`{s}umIw5fEJ!r7NVU;a$
zoXAZaBQy1up;+?QE(>;yjD-w*gnhNsF9<eM3J)VS6!Ca&9nHVQ!8kh+(!fZ8jo<i@
zHgTtdD*ZnCMLKnOQtBwCGdo;4CyszUl=EAtU7LaFX8Ya*zIlrA4-wXE33A*!xPz9+
zu`#CTQIUe&nS%`xq>G_?>IDko<4^OQt{?84CCeF;IB87IO%4takLEu=%j+p5C;e0Y
z_x96mUru6<R)TQl@I?e71#Wu|l)T=6+z~0Ty4s?lWai-{JC<4VnyGP@;yf0fYKsU}
zT9W)p+M?cEmt%{2kL#6>R168aJyTWmg5NkjI=#Wbo@q<};VymquyeVXWlYr3>REh$
zt(ftRZaNai@M92(FDg>ak#QDeE1L)OMO<iHbAaf09aA7F9arsJsxqs+dBSw1*Q}wO
z@7@Nl3KgXB7F%6fgpe|^eI{Sl?`y-E+%Q@rV>I;t4`n#s=)G~#P$yV?$7B<@<fEwO
zihRANCizW804OcFaJ5o}q>ABKt=Xw@D74e7dW!J%AFF@F_aZFr@q#I<V10yxyItei
zvi_!94=I-wOGwx&EA&@680o;ZnNzKqjC^2Ph_8EgRQ6*8H5Izepl<)8m$xMd)U81a
ztCeD7Cj^3A@wrA(a5vYX&Drtj&EOpr`;s^UoJ`DKqAy=Uktj9hiywoTt(u&xBux@v
z3y%VE{ezQdar@*2%VZ0gk=<JZd^?-L{URL+G|Bhl<QTpxZC*@;2jI2#C>$EUpP8Qd
zk%J0IxFqd30AuN+7;4`XSfp<}2w7ZxMntX3T}%ZKj-{WB2u5@uez1?;)!W#=3Z8|*
zAm>n&2GRrZZs9G8c5ED1WU3Gn1DWtRF&Deu!*ciheEA=oiX``c*C-JB@xHCg7jr~2
zeop=S8C4MNy+0c)32STx8y~NPrGceQ%cGO+G3n?Q?BEGE%-XgD=?`Nh;&FDMkpbx&
zQm;jpyTqRX_`5Y>;tRia_zBk;6)mmq?vGj;3CF|&13K+bWrH##ib_n87pki~9LqEZ
z=&GN|9SWvWrqonD&+axUeeT0!6*>%CzU&TH6qY4)t}w(|)Z#f}uS|kvVZ_;{lq|*E
zA1MKp>wdn=0s%9^&>th+K{zo{8mh+i`6;zsMwTDuVswPCMiY<Q=|+U<{`%tG=lp`%
zsZzh!ZieadxaoD1I>(zPX>l;vR0A#Ok7C}gV;UjO4vw;LRABTRzLsgV_)*}%gBH2q
zxKD~pJ$gdOzJqEB6iKdtDV~8XmeF*w6XfX(q2EG?u0O%o4ekc#v?*-6Fk-e>sXilj
zo0V+D;d}wsp)wy{OFr~VsVdZ&9>9@p-Cjj7^_O^k3RT&a1W3cmivkkI5k=iv!Sk4$
z97y7~s^<2OgXtyx{CDr|%^fjNB&Jd1YxviRMhi2-8?L374N5m<%QjB07cHLLVp~v8
zS{Hi-vT|c;<_1*y`uK>BEba51g@ZM=ReSjM+i7rm=XezJ83HD!fY--YqRx(%`%&GJ
zeT!#`I3JQYq!5Lv9$ot_r!8v=QqXOLPk+IZ&u*F?w@m^*I#(E|k|?jPn7h7Auk%#Y
zfDMoROGMq2mAwf`@g4z-bii)Gj9Xt^8pT<tIosC{-`^|pu6MNf&@aYghZ|vMg||}a
z>QZD;`ME%UlLM$v-jnM6T(qrr4(S(6EY1!I_*)*A9-}-)mY3_l1qFYH53SgQ!u|R~
z+{i-`U~KwbQdrwfN$JKH>Ba?m@JCb4bi6||j{_}H=7pE~)U}f{!JMGF8c);yh^_Uj
z>1L&MS)sggos=hga&E&YeG*pf4=4zRL2Jyxx5Aa*>V19CRo`|&ic>5mCv!vVfN^(i
z=cMj_%-~Lx9wWz)C9TqHhWLsuqNh{eK||V$9WWBdfRPB|+ysKpjZ-D>gc|@>E?=`#
zz%|om4aiL8?i^Kp@*!>k9qoCYW^iCKe$KE7bI9f2+8fF&Z<IRD(`wQZfz;Zn&)387
zi7&ZO|Jwx2m6FqOA-7RH8Cjm-6e2+H%7oEN#%tfU=L@2+L$WZUYrS6Gf?SM7xR~X>
zns11>TQ?O-uOG8z_5i8M$6!NLb}e~%sn7~;0ybC_IsK=HGO5v-FboF}N=E}GFsY3l
z!0<s|lwbR%sY;6&dKW{>gPo>(e9Y(Msz60M^b6O1DITZcZI1ZDT>RJr)$fZ;lnmu*
zLNn)gw}H9X&Y=~+N}**fs8fW<Rb*A-Yv=kaMLYbl=hPiW7)kCVH||oYOQm#ufh(On
zsY9<)wo>tgiQZA`69FbgXubBGKOrhrAI~(Hf0oKmq0GDz-6qe1q3HE88eANwp;Y2R
z%|8oM6Nt|GTWal3THNctjB`;hCj6W{{Inwa3V<wlGxlm`sqJj&X*Cs6nP6oBgkNN*
zOY%?MMI^TSPxyungjZM`VS-FmrIN!V;pjLYt6fBP_j@<}W|0qgL<Bmw$yR37AD^_M
zf?>}1cv95rV&TnDY#*#T%>UB@;P+nIRa{^KC)+Oqzn(`HvnLO}?)5T%0e2Y!B29g#
zu;3Q>Upn?}wvE78^j&dMuF_g6FPnn1+f61wT$(e%s+j+CxdV$}R910J(28oyEv(ij
z&wsxFi0tOZ=xQIlwi|a@O+BAC_dt(%lcv%s2dJsm)xf~*Ei<x*b)s?Vus|n<yly;-
z0>*l&kP6`M$I9{C;jyUgg5Q*|_0z?Oely0HZmMmNYjM)cY9wj~)wS=BdO1It%>k_$
z1=mz3$=mGysaxe!7LqgVJ9iqbn3g8z;LeAe5tK4JX@1B_$jU4To-Kw&{KsG{rr*tS
zSXA#A8FRJuGhI)OSPg~OcGLG|>6{#DTO>d3D0h0+RFhEckfVv52c9LbG92qU_7YP7
zk8F;Cr4+0nih>Yi!Cira_!5|(B49Hn$Y~VWoM88ww?4Z$%AqhuKFSxMI|`pBKtF9E
z*HmX|dhY1_ZLfc@>oF+miztUq_?`sI4X5;kG0;E2`Yh<`AIYY8UQxQP;`{ek!8WJn
z0|QdCM&+&y-X9{LR@^%|^2Qq(J0rx9Tk;rZ%bZjC@#$~334zZZuogO7qih8;-Gv#Q
zWNN4r*AbOnNs-$iFSNQ^!`)2CwB#tsx~MNyRoL+)70?7-Jwb&8&~6fwzuoBiBysf0
zlUC}hz6lLmeZo9Az`Lo5j*-t(jtCT@o0?<~?;K^6I06#^Bzd0;jp||K>5tOD6nOp%
z^e(t`_FbbF)XTk0*I;8(e$+5>AL3P?Fr9FVtG{-WQ);*|=Hr^$nYr>aE@LgbX_1zL
zBnN&^9K=9+c!~(2G_WjnPq+1grR7XWknuUQoKBCW<wKgc=yYMspz*`gWei93{$sS;
zr>{E5s(oai`h{6p4MU54ktii$q~HB<?ryqKN-A`j+uvKBrir@%w^8W69B1($iwgup
zvANrU{NU!jPJ*Ll_Y-yH^@M~#8Kr`P!15yMm+kC7om5{W()(n1lb=K_$O(%IKRNA^
z+^iJ0%FIj`LQWcovYF{RVE4E(BV|*4fo#C_gYZiJl`mV_R{bWNU``}GlECRs;VQn3
zR|p1=w$3eI?{o-ej#X`sxC$i{ZkHkgU2gw!0ukK~Sz)VF*6Q}s_KY7Igrd62fYs2Z
zJ-YR^vRu6t{YJPV-~m8YId0m`VW#0CKBXjI{Hb$R8fz_fB&E=CuKLl#EDY)NHu&=%
zl&CYRi|>xYqUJMihTVl3a6|HIo1y3G#_AK>OE`e#S754oLg<(9_CF*-(E|^Htw?!D
zTh*@$jUwz>efkUV!*L_?#)Mip8C6fTS?tJ_T1CO#rYW6rudwaOD{q8;(rTUJh`O}}
zQ#d%C56J9{?Vd@K0)(2lz-qVQvUPJX;A-qdenG<I!5qe*2w*LBqf&iQ$oqBnhJcxt
zb|Y%D00cmWkB}x;H$_f<s`xJccCVF5*KuYSDRey(G7f7#JJ;N|cBF|orMZV2>oMS&
zm?Usb3%-v_vgjj44l}5RMVra@E~;;oAu?Zp49v{uXPi4|OypVBwCaakFS#yn+_;Qb
zS))kKdp&P5#hw@&Q!%pFS|9q&Jtd66-5mSFD2jZb?|o*R|2aSpvg(NQ2YXm)_VovK
z#py)ChmS@&r;!(!X1|Y%vuM>mBf9R>{(O0wIQH67_AW{gh&l<Q?xsi;+*haBo^Zb8
zqgV-7GOiX?{%=t#zvV&dxbb#!w^yb8+i`ojiKhpC$;dk?6;ok(JaPt`nQ*|trJwZs
zViCOD&%Se}`od)|lZ`1A{Nhdo_;`{?-IaD=%4<T&T6#^7M?oR}jJEC=(iQWGC}90G
zpu#1%&s=Gp43(<8UTBJE9|6%hz*wM7_;inl|72uBsCIfhunAQ9V}SPC;=#j0DqvUa
z!KNpOUe~zRUjXGHe=ds?WZO6A1Is7`>`4wEl31rQ@fahSkUpBY{W<MW$fw}!y5NSj
z#oM#b22>JLv|~;LG(I0MG)xIR*c241uJX^78?Cgx7%a8`e1&?)INPfl-hd>grM{<G
zCUF7jy9_nv^<KqO`Wr)7Mso>&LpO}?Zq(@#1}>FxdbwdVV7nB%GsnfP2K>SKdFXsq
z=3f=h)rCTJthNU`+nZymhT;p0GT`q6596T08O~u~^g_Lhz<(~pc@p|l4oD!&DQ&eH
z6Uxp`&lU-Com*z*Hkl%ii{L?e>H)B39awE1RT+;_T!}E1H8P!S$NQq7C}`s$x>r|h
z8g+^b{<4(K>$4FABEiH`x%jGqsP88WoPGy0NwHb)Dpk^SeH2X?fN&<d(pk0xe?gWy
z6e{z6uy^YAr5sen*>=ThclL%I0OB4uDNW<`sed{OU;Cx1yK2h-_;fC#>C)HJbW7&L
z$Sv$)a3lneJ~KDlAk~<NLDX<NAt2{+FzMJP=x>1@ouEe53Sucx4nz6H2WcE|QgHIs
zYd011z*Re+sP`iz3oWp&F8e8EKaHuxKlGIbx14xSKu>&-Vw4i=ugJX-rG9>aaU-DP
zun0&4*Ltj_hJrf@@Dw{h<pDCy7C4P3qBG0bOm6$R(Wl+tCLF^#K?f-p7A@AW$9_$Y
z5-1^w*zRjLvtcCoXTJ=*pBsz`4{l-XTx4Ed%cc*+*(i2X2LQ@|DW_JOVVxglWs%q)
z&XrV13g|Hdjz5vR;hja(l>>w%ogM8^{`ZohDmkr8=%?si1<5>&8^-jk`u*;JNObO9
zRr<rkfmy)93c0<NYdtJ(imqgsJU^Zfv1@OoxS-?ux9xYmqn}Zw-_*ZYc?}h;w4CkP
zMzV)WLUP;4^d9Fye?M|By}uXiojW_3m9R%ja)KIc-EB~MONJ0I9&388fN5QpsBDVS
z5PgRw0!a<bonXPuu_I%2_X0(=k9%x!jyKBt^{Gn|vbNVxQ_hLW_%R=-UF=2IpKj>c
zb-(KpL?dy7QQY0#;Uiq!Gb(0Ra#y%%IqdY$V4^3Y;wB-X(1AXVC}B6ot(3Yt8nj8~
z8Bdsh>q-Qo*}O#(4vfGGCC+xNUN`aruWUxRFtM3^Vew_qfs4U1L-nBtG$9%SaPt~B
zv+P?{=V@VFbyU0|DluY(weYU1cHgeZu7$#<jKtj-S&O3tS2=ki04#S*o?`<~epxrt
zbPOjQ+4KPOPFB6=TW*w|_h|BuCh)boIr1XGIEoZbaXZbQbZy0nfCXg%&WF_Y#FR$2
zgUp#*-(k@gLvUq=bHrKT5r>)nWeV=%+KK11xyfV_Gs4Ki4@S0Czmv$q{Khp+<!8m#
zh}_p(MCpB0X&Nv3>{=({{_CEA*>;wwDC$6(Xzp?+1<|nS&!J$M0h*6^w?QxgOTpnv
zYK9Wu!LO6V&aXm|{L_LQ7kr>j*}U<wPflNjV4^`*R`xUhF!s0r<F(7n!PQ5)BAWc&
zE&az~Zu94xHu8{=eIhz6VR^17qLYhe)>PO8I2R1~T?sR|bOH^5*S1`1X9d}tTRaDT
z$BL;=T-vkEy_m0e{ar#ogq#wXIjg<m3e>oUwT({N+78ws^xpS{<+X8UhA`gNB$?~n
za;-+pIMn#*J}^0U$t9ioz>gKgbMT8)ezcnd+|T(&Vah3o+%wLsS@qR9Cgh0bc+k5>
z`x%}WS4n<|bK@obwVBt%65;u|ER+#Qiv~Pj?(i?DlKOlm4u3KizlK5~fc>L92?aOd
zadY`gA1T0*fkbsBt_)`-+`H<h(!$SkSP5?_*AvgbGC5JyxR*5vz94Za^9v3>;$LmP
zi_=3aH$cn8KG{V+B|=4Q8isMl@a3sNcJWdGkmOQpt&td(JpEDR2K2yU6fED;fca6w
znjj|sRiFBChdf3mRozYgxIX(d93XDIqmbxzb${4)cabjRbzj)loO0uY10^^3ydP=y
zfcw;Z5YNm+eX@N6fIlKC;#^j{9cA=zg6WX*8b+g5Ps~;5yVJhdE5KNpNudRkFXZsT
zjrAm=M*GgQP;Y3>H#fIz<@m2^T*hY`^7d_><Ag>Wy=+Xc_T@f{KnETjPSBi(i>7k~
z3~-FSABm%uObxE!Ue3lrKaMGd$>1#h5#_-|Gcb3cQZ>Rqt#%7Ao(?B(I!tvLq*t~Z
zEFAgf@Yw0UuUE^Vu}P}UGO+dzqZ!1gjeZeCpHalL!Parw4o~4)c_i7#k$5!X(izGZ
z5cCl^kUGs*o=fuz1A=uWI;n295(Rjj$EK8bmww`E-PSi;N)jo9ujerl5GdXh1d2x3
zw@<YL2zo?6Eb<{?@|-lQo30kcC|`ddvp@11afSspb5h){OW1z+f#XQ9zWBXL7M9E9
z<yJZruo3t$(%DafnQL1w)wbJx!bI&MgM;d6Zm3q)taiifQyV5f40M|lkw{$o!V}E>
zuqgRP1>m8}#r5uYIdWX~eQoq-Zxo^{Ol_SH%EFN->`!$2w_cq?D)I|Q49*jQzKF-I
z3wuj7G#qdc9YY%bYr4g~ulc@+1Ce$sz2|CWy4_m)evig!nCP;HFgSVk3aaPTiQ@51
zoB;iALn24wPGfI_5X7l}d2|HAsi*Yn&S9{QQ_dj*qHDldyqNXB;FpIsBevGL>j%;w
zjiT27`la7;pX^r_;K2)L(BV&64LORGHwyi{80l@;l`zh{$H83nbU~)t@suU#-E#7W
zRB(&P{Bgf*-+D0qZPBiLvDERG+B;8DUVaEiBG7W6eR`=LRv5<+evzF6-)*~_kCIh>
z`xG%#oGnz-R?BzYA0;jwz_NqOxebFV!`$fbomKa56Wy3RSTED7byd+FIeJy}LPkZj
zmnQ|808f{d6~NMOk%-BEUv&#dX_tZ~=<0h=i_rl$pit1(g_Hc2_$wgj-w;GvC-FI{
z?sW>+vX$;_)U$sQ1h@|um**WX=BEXOBVq02=DD?D%KYgP&R|mC(d9YS)d=I5x@wx^
zYkWMnP&Icx_<38qNQBkLep+E??jq^jwxJ4ZlO`6&{0PUX<~Vpo+042Vez<M`V~&_V
z9z&HdLV$#8tLow8<Z6VUzWGAQLnm<%4A|ZxBjJ48K#J2c#rRNeOw_$qNcN@pht<!F
z1YS_B?GlL8?PhrobK`>Cbt`INdRpZ}JML(<4x!{{Oj$lUjf>+f6Ir30({}46R;&Ml
za~8J!c_4<`CCCrl&*P$;SZRGUCt9qn?D=#Rm><r}hUqVHSvWH_%n@DT(m6D7U50bs
zt5<z$efm{d*eA_PsL|82)%WGmeE#+f)^4)T+I-08D8rO|QvaS3L;TuuvESES_zwog
zWx0;}0O0nFPXcqZ2~+H1GBL@$(zs|V>RpebX>s0TqwB`?loS5T<XMkwa_+9R&5%g?
zxt)bVSo$3<1k}>ky9ceqsQKiK0l4=NR2Eis8)S?lb5<x{mc|myXexGn$AKZY`zJf#
zRYWjp<rgWOVCe_&{h<1Bs@Ashn+}1_)J@X~bs8RUcuGmjoy!lt2$g1Fhn!;bfamf1
z`xTH^?uHpfzWAyK(9qLa!?J2~6HDw&az95d(_suR?}UwV;HM*tigF5;Qvbr1>-5<f
zx*Crz&TD%j7r)dshW-NN;kk|-E<RdlEkrJykdjP#*8C}5c@O$M=$(th3``n-q+$Ec
zQe2ZK$$=uczpCJw^z7E+0krB*Smg01r2wXu>5355ovA6_rU>7F@sj_raD(Vj)X{;`
zTV!O;)2~n(CX~VZo#^Kjnn=@zjh^<fD^{Fx{Ox1~6G|N(v$>iIUW=MQ{yC<$c9cpW
zi6U6ZqQ74e@MLXkdz2ghTNjHC4$kk3UHy9h<J~7XFN?fLr%n#KdNCuIP+-u1C44=F
zc$*$GT*+(-W<fRl&j<_ng#yARJ0uq7I=E?`THDie9GI8;pF0&X4y8oUZux&M%uKWc
z8`q<NR>eqB*fW1^7XP~Q<Kc;$(jHGDxEvx{TF$u>-jPtRKHU_1)P(PycKXKx`vN4W
zh7<*eFTQ`qOenDq03;(rQ^&`^4wy;!&J)-7u*M54*!GhTzbosjRreLx2@2ASHccO!
zeF|ZBD={c`?0tH=pXu$TKIToKDpT<TkIwIlMGazFy35E7G?EK^W6}8?$1bz#H8g7T
zo;0M%xof#`{djrae_A7B<>Pl04nCVxv8z8OR?yK@thRfrtF?~GLeOnEQ)q=#_@=O(
zF?!5?*Z_ooABr({hKPPZl4(IDlVhn}F1^~(yI)@_vk<cf=_dvJ7NKwzO&_bZ%`URq
zV=iY%+dtH)LXPVvPIUW{07sqA&af}q)jUl(W<zs+YIuc4)b+1)&lhVPLYXy^oQqUc
z{Mr3FL&W`^cW?xjV&Z$Di{Z5%!q56Cx6?H>KW2@vYD@p@+}?JTH&aU*a1dR7prmYn
zXE*(ZeBe(Iios+P+G@+MWLK?iu6aGlQjPM)2=xW2Mg1koGi41|4};}uPpZ+GsH-*1
zcQ`5I#tI~^24c?w((A=jaHm~C^gE`e#*5PWx2mq7=l~UlZul`|EY^H1|AHuxLka>n
z&1W{e-<rj*w~8eyKB3@EqvBk1axvx!6Chr|jvCahkkp@lS;~ZWn#3FvF@Jolnw(JJ
zzS++&4nVK?7?~XptG_(Zaeu%lsTAB^4*y78Gpbk*e5%Ldl``<-_^7X8*h5Sf_6&3c
z2p=(3a}vBWhwoUo=+nP~Qx@3>4>32F*3=YP@zUFt^qHH(&rg+BdUJl%J*|bgh`f%x
zoANO#GEau1YMEK0yRrz?^9<qs^z-Eay^6+kb3Pv`>c;bJ-yD5fLCbnT5_5TXP|%h4
z-;%j_BQ0UsXJ4#1<un^rcyzMnvvypN>X}6utQkqX>(@?W{)Wj~Y8XhNj1(Na_H;9m
zCAC*vzSfC`Z?Em1ms+A0cv_k9*HD#<67HButv*e;>xbH#8qZg_5jh9gon23%$<HG8
z>_BKecZ{7XO%<#XVnpeDQYT|UfxyRn>8tqZ2cnz#F5B%2aQuEh4V{|-|6miN^gItb
z>p-%Y=PD?*o%l|KfN*xROz6Gp>CA2RPFb|UZt|msnhBXuPNn_C<6X~g%IECxUOf&X
zJZUcIX@+C8_pQeecZ5%RN6-=TCfNpzzX0n%v#2j&mz<!k_7IE&`-4uj8VtstE$Bm_
zZsn@G=|{?)`Fn4ej76w(vV{n1!Yip40KOsSLN(Hld5W!*YO(5DH+vP}LA>`=A678c
zvwx|&TD*C3gf{mi=gAQy9PeCC^zSclt^|HJrF=OLnfhQ}Vu&GAhffJ-63-rC&?<}r
z*VkQOLpeM=+_a8(KZGa@6{b#nd<Yw!LlHC&h6$Bb`#8q*3}gRpZmod(GN=gS?&)n8
zQJ@+h`T`iIpSLO|f$-1dI`v#8qHA~benw5@nG2P|N8}j7CMS>XH`g#>ZjZ0G+trK!
z9io5Vz=Rhj+>wI}B9g10lOIT86vc=B5(HJ)P-}B$hOu2RQ~b5nJN!7rn!^|O2m{K<
zjr49iiwD9a&|BS}uDP?h?9Did+6iKmro~?aMw$x93-vf6&jPy52@rkXKVnxdHdAa&
zQ*`=Tk{LD_H1?FedLo(Jr=s=Pjudoi#k77)+>kf3Bg4qvhHwzy#8C+wJG+2$NtM;d
z9sXELOBktS7>SY<ddgxNURPB>EC4pH!D@_Fm`huuXIohHgd8^@c|L;=a|%%gQ~AsD
zfHKV3u+s{kQWZW11a-yu3BGSlKSNX^Xx}m*cc_W{!e&AlX`7uZ9|k)?V&uKd;xatJ
zDF?8}M2Y)MHCKsHst37-c4=zDeQ16vBge)4VMaGP*qN9Jf_)DAIm|NRgN5x^P)|<)
zOplup@b3w%YO1mM<B3#kE#JwvE-X|Jv0W6_3~phN)jJ(%&=BzyP|%L1_cvJB%M{RA
z7XVqvyM*tjh1((w&VvN&tO@Ujj3RZ}Gx-WCqiA4_e7;}fi)SgDkQhLpu}a@pp@_g-
zj-PUrF$5rQ#P`k2r{A!jZ^Sk$`o`l}N4!?UX%`qJ%DghG@n9PDe`Qj|+Syl!nMFl~
z<|j+@>*=Xc6XG2uEKS<%DTydc+}DU{H(%(?UE8eDighFXlxvdYLt8daxDA5f;Cco2
zTOT|IZPCTjyjxF869+CrEwJdjlChn)>XyF~aqc=gP55GE#T#7*ht_~GTF-hHhKHM{
zlmI+VW{UA_kA93?)ALKyV;?v{Onl)3i4=m6vhJKk4Gp65W)tDNk7NSlM=(oQd;<LF
zb!G=HN;kQ59nAD5@mh?KRNLxZ@bP9(s%hw=0ze5K=Rz*EusDc_RVy8ete9$b17+?e
z3KZyL`Jfu8z*+y%3F5(3og~#?r5Sq-LZ*5tGx&i<$V4G%zt#Uc^D~B3bqesLAMxi(
zh9G2l1V+~jD=pZm(3i0d4vuF>WaX#*J~;R%r&U$-+0gJr+X(t}P%PC2p-d9^aq@@J
zCxM7+mn>>nJiL8cUU<f@7xM=YUEHv4JT^jmg_(gP&GVnfGnj$VGA@}$T`%9@-RR7}
z&OAknE30ZV4BaZka5BLIly`9Axw);p)*jaX1YT+o(Zy?Ov|gT_op#=tk9MaDf&YfR
zl;5N`KfRmxhotlx4h0Eg?$80+!s|jjxAA*s%fCr<y388cC*<K!6!$gD;NpCy1CrWr
z5*<zSmU#x2QrnPTpFr}{xD3GvOw4-sM>U@z5)4~oWBl2~S4()gcFReP&WEQ6XqZ@(
ztvB7cH|UfUp<(ziGJTZjc<di{R!6{+Q?@|c2R9@0U^q!XGPs4RKGzMD%^7Vyw;V`z
ztvrBu*TI=rw+_?uf%X30y4sF>dZtGDp!xgrIT{=h64rg&Jt~|-UwB6p4Ybws$L?tT
zXC&*j_Hh*YxfVAcGDjS5xn3)tYo3cFDG7F^mzg^$xaSB_HQ^nsx+S%kC}Tulf~$eI
z(re^+8?L?f$}}o>j*HbKY+F~e#slyF#Q0*8!A=eIFxHb$0T>G%7pl+qr-qb;27)8#
zjlYL-YG~e}p?ZM9oOgGe2ndBk@$^RvGZF)Ea5Q)a&rdhYZ7*J^?av*)E?DG^)~9RH
z;pF}W+00=9EQ6|w1dZ=p=;#}e8?seaP^6Rj5+lUySPYjOl_A=CIphx@L^xhvi)EqP
zdu!MWxZGGEdOLj}vAxa7tlc>ndpWo^SK&-(_|@gOL4XxQAYtHns62weJqgUp^t}A<
zj@Qu%!=HWbO}o#<7`wp!M;h!k<`1zDS_VKLM4zzf2aVfdX&gYCfw|bEH}ssCn@L%q
z1Jxy@2L6r0m0OKs6&?4KlCsMR6UfMou@?F#jP!x!>o{W)J1LLEYxlJV*oXe>cW7v;
zFCrAW>~1uc7H15n2|;#ZghC@1_TI`=7iYU`psYbEDr^!@&icaaTP-J&KWHpwrDl}a
z&HqkweaoslEt&<Dd{#_;Oy;9~-dA>>%9}~?_WJgZMOGFLWijDs?@XKOI&#U|Vu#nD
zpS$^}gtPU<a9c$xhW;dpe=LKJbhDWBJR_NQ+u=yevvv|0QPt2;9tOWpzacr!z#}c>
zd{*ILAlv-(@_sv<418PBH_2yD@z=q)azi0OQN_*6%gyU~VATr^u7{D)e_#Oix2Ld>
zwy-eQpiv_y=a=PM!ht{ALhFpTa{^EFTj8vk22CbAqr6^^6^Z4zR6TsZYb5}DLni3V
zS{X7FpVGY+f(xyF=x80mjuv>`(S}Eq3qD;YU5sJD8XxBm9jOR2FKE<918Ye7kTqb-
zhBYh7+2>Voo38myDwb#<hqN)UPn-Yptst6{+Il(1Nar?C_U&lPv(WwGs(8bu_4h=x
ztGNpNwtLOHYD;H>rhh<IqVM;uT<tLR>?K5)$HR5>GnVs0o0wBq0Grs;pGF{L{=B2;
z&&I}|4HLI$)<urN=$N6#pN#U#<^BBy!-GZp|4P}I(InZYsx3N=7XuEgG}L{Iic~aX
zbqt^^8G~PT37MEvO@W)zz}?ZE=8s(ki2@al|4M>Kl3`~IVnuY*K{jzUwwDt!r>9*O
z%Z*wJGpYozV|?BxEw?u-Rg;rUUJr{!#pMC@0>-iQ@6sGvWWH5B=PVrX)<rh$XBlT^
zeAsA3vTGyn>pm^W#!^c6Hyry8_pF_ux%SoTUzr;XwuRy7dVPHnqdJq>aDl+~pAVK#
zSvDyO6xBeR@u-p#*lA1Hi%TN&&vMgLoh|9(-EM`IdOlwW`l1pW(-$_Tw@j767}-Vg
z@dtLxkIv2=TU!U8eBWb|{Z&(cs;OyR(5-4*C@JJDDh?}R+9lM~=C_}9!Jkn``6}oR
zl7gLQ6C?(bsZk`(CRGCsAwLYr-8L~U_p--3e?V(ls{a1HSbbT!JMm_3+Rv*bwfDPq
zjc|yoYmf1eh43e9%2F6e^78fuVBkck@PRA)a3vk>cYSz_%f5kfUYOnYY+1P@^}>8V
zU9P^6jPx}$W_}KNUVSMh5?culqKX8zMgt-AT4rw(`1p;(B0=rWI6_PLW0@;0-ov9x
z%WZADy<s|HFH4;4W8NB#j9e16sR`-n3F$^J-Y)jO|6-R5)#p<Lx2w!&G09{*`{zV>
zL+f<IKxNuh=Z=>r-lWQ+C{|MnWLO86!`$RX9u+$|F;;oX<$};^6)l1di33$1Y>3P+
zFoZwK%y6oERqk>#0_Q<fCshcc(FO7?Qt;1d+vTSE7+h$7=B*5i{=D>75x>{tME#?q
zML6ig(M|kFsveKM;a~N9w`kSK?D^iS-&bY-rv-=^)3T_DnFw#q`p}+f*y8AR{qvbr
z&rtO7u>8S(X)fsRuB&E&^=x!;8B@#JZxsk;tu2r#dg-6#?qGSx2e&h+&2n%5jg9Q|
zXg)SP^j_}^#Yg_tcF!A4Q}g&G4=0B?4id-5-=}Rk=O+F10@-$x)^rmt@2^iH>OIAI
z$Rh^N66u*qKfqK*o$3YoyA1uB_H%r0$AX*TfFxtMXyZTW?sn@V{IjOt=W3w}qH^BE
zGX2egoC*tzZ)W}>yr1SoBij6?zmznkY~;CMDd+F+J6lfK=;hhBSsq<N%2TkHWId=X
zw#<dzDfoOPab_Wt3@T%3a?Jg4F>>04C9~eFrKScuSjhVsV)AQHHQOdVV!#_zk3kH#
zaScW5>3fJE3u0snW@S1jB<Ll;@4+KTD&?)k+Vsnn$Bknv9Uf(C-KR?eD}?Q^%+-=l
zT>I=U5zFee?D>D}P>9umZvJuK<2+#wOkVsQC-Wji5;Oe!9G_C8;UJ7gW}J661D0j(
zjf>4jg&l`jc|9K%YHj^T$cX<aviJY$YZ9`T?|VE)8)omVuUF64<Tfu$5p7va6Y1i&
zBWpGdc}XDoJtLs0oS@=5!iyh6CwMcxBOt@hOmVR{F&b-haXxO~LR{YRFUuVLa$jA<
z?dME^YHYUj%;ix~*J?YSnc}$-T>EDT>Un|fgO!y@NC*%W4Hyyvz#}v-(KU76i~Jt|
zS3#)0xPO1_(R$}f{NjtmFTSXlIkV`dn}S1!^79=K&e6d0?#NCrVBLGO_2eob?pl%v
zc?L82$)D);GT=emewxf}LCcpLmtPKQgBQJ(fA77;ms~<P$3RX7JQYjFLr#b^<^t&j
zdPj2by*+#G>Ct1!tXYG%ZXNaAcfI!SZ@Z7J(K3wk?Cc{~URgbCm~GoQ6yn*&+<D8g
z6pwwBXxH#`Lm_zndE+mCffkrq2gk<Nj2KZpdUW;Z(N!Zy20C_ZxJRK7pD+2C1E0@;
z%Af(Cuc}KI=+ebG-Op#8<t)S%6{T+7nzd$4R(SHT7FE)+Wl77HmCu}6c;k)1Awz^y
z*wN%8NE4Ee{MF-(9@wK-YKf)x^$fGRIuH&yIBR5er6cA!3gg=h^JFhQ^f8<5s+%kp
z3Be$`_g?hKBhA$bF!9q*^Upuul8dGt4?J(qfyk=?S8#ajF%O+Ni*4IM)7&&-#D-zR
z63fenZr?s~`}W@LqPqi*jV(UsoFkWAR@=Qh#+V+hFGHQ(1|yjbPjuBPbkj}E8@jYR
zb*dgWu5R$)iYZg72M)C8Z=Eo+8_4r0pI?D{!(y+6`fpugV(G+*>8n>a<8?(;$7Rbp
zI?S6tKM-af;@WIz>@nmM3VTk=g1El#&I0Btpf*)+wyyB#(JGszeDqPyx#tQqA-%>C
za=SVjZ^$#YDTG{Glc1FC-i?0q8>G;+Rb2_|*9YqAEXvH0ujhC~GWnWB1#%u&$E*}S
zcfPu}ZM!r+e&v`k-;NrUR8}_ZmtThO-8&#B$2^J?aW$jzuD!P4l1rQs1*G2QYj3_X
zZ$q?ec&_>R@P|L3W(r-}ojTQwA73+JLe;o&HU0bB01Yo+fq*b)2=k~Aco0pKGEq!r
zWro6h8G*z^e@zWiw%!rtFt2RJj3YPP5Ewd?k7Y5{AE8~u@FqlR*aOaL&>Jwfs4ds6
zEiJoWKisJkiWJP~_1I%MXPrfIBVC?BQbmHOPo^*r(2twhmtK&`BPTSw=qq)W(ZYr3
z#v7rcqS?<ibk3Zu4?i48O{F;}ba;GaBI6v$9~KdPGx_Tkz@Dp!Xq6@=t{64yn-L>o
z>gom`I51-0zTx}#C$`1_hDNAp)~tPh_=6P}XWKRo1bDi8pw4bP-mc-9Em(kVy|w9~
zOFJPU*uQ`AEw@xonnVa^yXX0qDI)EJc^8Xb(}a0(#0MX!jE`9}cW&OWVZGO{@4I?+
z7iwOECaTl&<(-x<FPkx=;QH%j%#&e{Cm(RVHzQVdNHUoSSr(T6;{}0+Va=K2d*OwM
z8>TK_erU=R;Y%2kIUO;O^L~lpMW32~#LSwO2A;53L3ug4=_aK7rKD&TzkB!i3oqO~
zXU;E|ToOPiBJCnR5fI%d#I=vo+b}E1FTFbs_Yort!po`k`@iekcXOXU$hP|w6b#PE
z=~_~fURIV~Ru=0X+|ug8et*tYR~?!&$MX9D0Eb<QH|;Rz>e>YD>Yo<I==Z;er=Du!
z(X6zz@~f{dn=>bvkU$v6Eby;j-me2P&hfMZ(K{EtoLE>mV#$(-S795*zCnZPVq$(c
z`Q#r?KDkq2VgGgO#(wx=6K@WY!#n`k|M=ror<`IZB*<t-hc}Jz2iRm4q7ZwH;~zvq
z;4#fVK6{WX6uSO;725S&upnpBB&JAXci@2taluR#;DP8S^N&^dpj!xdV$K1;E3X(2
zJp_C9H1e<=Iv_QF)9=kU(^juuanC)~Nl8N5F*ONYMKI}S7{()w{}a8QM;-YS{kTEo
z>FGBZY#4hoGxua>I$IhDCDqhqR8(Y?mv<>E>rz_UrK~KqxHz_z`gWEN8@BV#JF9y2
z!Wa`j$LDs%+Pjr$M^Fbh-we+^*OWtrdi5&1?z-~x&I|c`wr$&?ki`v!@djSBr~@@u
z*RYK7lm!b^u4V6t5#^@oj1WQy9qHKdNOtzx?CcYlE*<&RS8>hv@vUCB-DV{ul$>!!
z>BScZsBSDm^4XrfH-Rf)n0n2OwjPv~WU?%*IF3=#*~T6)z?wPJT(-=6m-zkryR2Ao
zV8R5ZwDVb%5%bh|?9p3-=e@<0d!Q>{vW7WSqa}qL0N$~~_{(3=yYDvc$e~`nitoD1
z+_x|F;fED>>9l|Unb%$S`5*ppXy8B@>gZ>|r=PyD<QKa=98;ixyN67*!@T8?^#=8I
zI_wV8I8{Glx|JbRnUGMOl(fHlcf&AD(=<)fXPO=B>bjJcrk0eXm6W6u7bh1MCKnc}
z#HcVrR(yP@LkBB9J`@*c#l>0i@%6vq1?R8Mf1PbYadDxzIJ-j!+eseBIT~Odzs#L!
zP1@0@Lrp+kVA!y-8*ZpL^;8=n%d&XR@eRmAV`oeJuOj4l)G^GP@x~k7)CNnfojyI_
zewlLe`s(S^H%*!}a?P5Nt5<g{Dr)o{qh(fArTy=JY5)5l0OZ|rOXaj_!2tuDZ0_On
zu!6}0?j@A28R<L2lw=v|Wc(9W>+}X~Q?g1tc>VPeX$Jtk7cJU%;)y~t!Q@X_?a5TQ
z%tK^SMK5^Ya98aqy3$5SaIX#?MEBoszV;e4s%;y0=ukOl&XK$CwlId0lH`B=%ZTRN
zDW^UB@Xqn$H=K4_VQMPhGlh8yMEtF${}iz_0e4HuSy1@f^v=elT9=*0wr#Qt^St<1
z9}G|#A77J{bf|Z4(=>fPpHn*|*3_gF7bjF!n$BK^VaLVU6vpg?1Un`M$;Y(Fif8@R
z1%v#RGGgj#S=9}Z@-3rgrX6l3)aC#8zttz5<YYH16tX=B!3bNDh4qEZ)q(r&yRJpf
zIWrWR`R1F0H*Qq9qTNG=9L&f7>PZtJgaU@KYVzdOlP9MY74`l3=l<Kab#K0JKW0Ap
zBs}?Kpj)?!sZ*<F%%~kd9(Cv-^LZ#zS9LyTlggJVU}U|slKC%)P=`3q2}_PFf6I#5
zQ4pVtm;xD`IWwkTKO<6OZKs_($NcMG)d>lxy4t9zF=}fqgvvX1%<b0gK(Aiq2?=yP
zNbktho_x*ACzW21JxBg5!bcXBm?PBxx3CcX;~&QJ&o_E{l)#W71y4Oy*SBwdO%WfT
z_uJogjj|bK;QI9g*RKbF!u0gw)Kn*JmSI#RB$RdRSeBIJ{8l6-g-jE1oHN3ok#mkl
zZy+pIz}-MT3z1Su>NG3-nO}O@5tH|b_ymyC(Pu#jRV5_UBqceo#pLCft|$<I5ef;f
zLU={=b%Cg)Fv(!9UAUe<f{L1xcDTu?v(wT_@42V^oO9?wp0>M-um|uwP#2Y-0}gEb
zWo8^an7wdes`8h#zL`Ef6bjMLhOSc}TqJTkb;_GCVeO<zoy*I|u3kN6%^F`b#nxjE
z9ZG%Ujnp^Zu;b$^Cr_@LKD~O{G^<M&J~!KureXn(dCUT-H$lWa;c~R{E>TBc^kWss
zwvA1jtlqsN(hdN6E?+MDQ*mnQf!@8He-+`nm=;};d8AXAMrQ-3){B@(a=J#`bGAU0
zmm5z#W&HD>P3d)6e)ZKwx8EM}`RJkIhcCW3`Th6f6lQMYl~z!YCjW8;1~}NQ+l~PP
zHjW-$osd8{hq=%t(>n}t5oV?w@ehcOPB}6RgVcERGQBal?=v~0lM-;3AaWvpC5t-u
zC4gsDz}_@D@FI#_5y`8K$au|0JKRLn8Aj!mSC-szODHjsr<zba>YN2k#Vwgv0}$OW
z{@(HTk@;)CEnCib^;JVT*s^obpo8h@I7~a?)1q-=7)D`y{L<{~)srVrT(#<i)vNu@
z*QLs+uI~877ahO&0uZVhHL7a*^y**zDl~X7;<9zLCXZYQzkn&U^UKllPrZ_DG)<!t
zQ;g~L7-QJ8CvN_HbH$3LpD3lMD5a=q^rlS!P~N%o!9INs_3M{AU_eDy7M~a<8L~>m
zxtUJA$?w=gH?TgDb#>^)7k&Tu2OK%l=tJ45sYf1tv|`E>Ck|v$V+le4yMFh(5x3pe
zZ0QaQ0rWg{sOO<W(^jooGj{CiNt0?46X|=!6lW%gA}md0U%IAZ7)B~OV)f`{Qt#3A
zj4Vm?+3C~K|0OGBP5a<}!D8+Jb4AS6fe3iunO&J3QKTjh_NjSqnwXeaRaFH5^XAQa
zLDH$L;RtngC@xO%#IyqA#~0s!f9;?_Lc;OmV0dpQbagmVoL5#!NiPrp0DAxQ)7k&|
z4^nO#wG89=dGqp9Q-u$Yh-4k6QOz)n#G0CkD_4$Pv!)rDCrD>nnjII1!~Y;Y9>>Q!
z3*amyBtUo#PENLm48h&Hftz+J<cqlAvFyFF5!*D2=!`_NnQhzHvdkA>jQR7QA)3~s
zMyMt!DR;ntg296ehYqdo*Uujt8xs@b_xqh+B41c$Sd6omz1D!_G4cOZ5ylwp-D}=@
zD^lpm9O1&JOeuKu(LhQHUt^HpUa!5@zojQB^!wM18@KwTlj@R^oSP|(1PXl;O$#C+
z@EBR5-g&}GkBE7=OjW}#Baxq@A*YfzF!u_`Un5YE0}=n2U;6lOzy0>gl`8=tAt9mC
zv#(!My<J1nw`?&ky)@e0?JiwP@42V)+;gq)ds#%($&8%}=RlcowCG2eSXOr0!iDOn
z1AwolPR&nE73M`c8GJ@0DvOEvV&=@XC!aiV)vB>;*0j)^ux4SQ8RafkzkY#Pvx2i{
zTjRz7)r{f%Rq?;%HH~>+BU{qziEwk<4#lGhvkgN#j4>QOZ2s?m{=4pK#uR!euA-vv
z=FNRKZw7!se0=fHp~b_8myaG@J9H=x&qhX<5x$1S7z=?1+<Oe2W5Jz)Bcu{z*u2^J
z@I&*XkI>ewO}u36^A+EDXUP>;SQyjMOPX_zwqJN*NowlYXPz-y>}4?~7@V?t^@NQZ
z7hiC}FGGh4%Q8(qo+Ti+ci0`QB6u^y^G4CjD!>DGV3W@Yj+wK=zTcp_uz`qkGTQOt
zQOE!C3(USzosm}KX-A(MuU%`*o(-j?Q5~V`+H1>x|NCHkyo_)%)Dhs>p3zI@u7M}v
z_`4=pgYl`azuqC5_w>VEyRMitiGi^Ycyvx;-m{!?QWg`lZ05|hlP6DFxpM59HNG}5
zT-4mXJMNih;+}cNPE8G*dTL<StkCr7I4(|DOM--a-Z&)7e61R>o>e5G@D0>M{FdZ7
zqP#rgz4wfF-Z56MhE{4sjH#~9+_*7w<3<3mVq?pP53fAogz6JdtQ$4T4i8slXotg{
z+Er-h?1Ds5XmNr90b|7q<HHY)k3UAuG^1m%PoKOeo~RizMD~76Q0FY~oj9?iW5@CT
z{&(lYhnpn<Ld66E=f3yee=;-6)6@A<%rFmeQB4rFrP1=XcQ!Y%8Fn||G0%&C);w+<
z+2K(Q5wnEKUE*tF5Ard4F?9l;Y;QF(lIcpvo;}8iCq|39(#IdKxacBp$O*A0banje
z4F75%xOlaCmMo86x^&X}@2g*<WtuNscU^8u3ZG3$YQbG=6Y<dxIyTa=re?y56(_U}
z=F!3(Is~Rp4a}ZhH)|FoCxe`MQ4x_|!!LWU^jII&#<Gl554pvQ(L3)Lt5&rZ<RS|D
z{naBzRF5BDJ8@!Q>{ufqfv<dJH6ULd%j&p>|CX1VOP3lSePn+28I+ed<AqdQbWy=Q
z_XJ~ONrk{v6b$eh6bxo<-Fn8;Pd8&?c;#ni{&)U-h>N4c#q@$KstF<kO`}c-Jf3+B
z?L2Bi=A`t3a3x3zDZlI?o?+e#!UWTL^UXI`tXKgGk<7->&Xu4*z&Pa;h-S7{yHlsa
zx8AB9I#l>Z=1n^ub=cjID|<EI?-zgj`1SNcm;L+C`NuzuXkwV3&6>4l+&J%KGl?Xq
zV}M5r30-EAs;eigSka9AHk(sEU)_``wP&3boIKg?-5VsgT2|hiV?<T78i%^5KuA>o
z)XK`tMT?BL-fGK`6AJtNwWCMZPMnB4b*h^_9cN@f=gx*{3Tfx@yqu%Cp3C9Gz9mb{
zk3TlQ`39Q%Rm|$#x!|vVEj#TrThf0`XzUoFnwm5J@Bex$e^9Uy`f=R2r59gJw~sR9
ziwHa-Qk5}voj2;dfydW5!i9)cqIwx*E=RT|qBG%hrePRwyz$02-+Tkj-fkzbmVfv|
zw5U7s=9{%chS05abiVXpo;NeR&761L$`@(=iB5j&t*B7<Rd)9Ji4zgksh1>=$-7KC
zg_&NM!z$wAm(QBDe%iF*n>G#k{`>Tt9QEY2xI&@WufB@?>MH=SdiFFA90-mb8yq?m
zgxBKp+3D%_;KA0QL3ZE1;PWY#H;~^bk2Um4@3%d%Fg8}KFkgMuT)Y@+YNFn~4G0B;
zaT_+oIVJbO2LS*~(@IXZQ&MnR8vTn?Q|*)#=+XtJrb1ep9UCinC>R?%cKAQ}#P`W3
z=H|^UkzgDfTYA}LMb};%NJ_FL4II3&6Ozv|jJGepeEip6pR#<p*?jY}(;B&9!>*Ad
z4-6j;Tm{X)zY2}D>)I)KI6NWkY*EC^+do01GKHyG<(M5CQJTDW;j3l(P9jmeqlcoP
zo!}lVUW}p%3)G`-=ujSJY>t#P+6iA?8g12?>?OpWbDWO3x#`OD_0`75FFWU)Eh9!4
zmc=BAzK2ZCbKNN0HVi|UO>L^nxU+F(T-^FoPT4qZT1H;pkWHJ0u3sNlRi&8Jqa*Xc
z0RZrC+T`D~De~5Sztz9LHF&T!Xb_Hx!F~GJsi`0#ANKok_wKk`H;9IRvXvei)W6#u
zKI~h#(D&MFsIikbwq044Sy*Tm7Q)V*-W%eS6xaW2YEX+J-!#iEyzs~kHw3zLv2EK5
z28G7XqdwtRS{Q#jdGe;ALr-40a@_adw*>Qg?B0EF#0Xi1BW%(`l1?l1TXIyu!(7~p
zXC79wRxKx4Nu*0UeH#sTAD@<@ouh_3vURI*%{A&fI;g7&yE+fZ327J6(lHVOjLB_^
z%maXd%AaX1=+Wc-Yp*Sjk2fsK4tED&PQm0evf%O9m`o|8V18z1!I@{So;|zY)~y47
z_@UR19V%1awK)ZY=JxI8_U-C>;7*;aVZ-d<!>!@NtzpCLAwzI{Jj*=WMumkaKi?=Q
zK>7Kopa2yVAmvb-`Ppa2fdf%oMf(*hE<S4Ks+c|d$jvv`_Uvg{mQ8Vv0iLYwLlz%$
z7D^KnKgiBrK5pF9HESkr-P*j&8~63stIs_bxLVsAc!~}WyF2B1)6N@sbX_E?mxTXi
z)HqUlyou7av9n;f$3oCIP4RS%iDY7oAwS<7HA;O)yHlrvH{PfjJlF$u?E6=EGn<P|
z^PI!n7c_Xx&^d{x9UV94X_v8MhstG^WM(e9^G?gQP0PX<JO0cF_vIy<kyFUBh;U>6
zqR2LMHVqoa&e5ZP88gOb+ue8X?z44kpRHSynrZsYwkcFr=3BiQ++WkR!=IQ30OQCJ
zK<L<NT072FHDyY{Ew@w;8f4qH9SmCTh76gQSLBHCA&hZJV&c0qW_&Sr?8!g;&@U&a
z=aD1L^+D8x($ZRLz8k)<)0K}R@PKOykui^6i6faj8hhU4lOa&ZEk!Za9Ym_b`BwzR
z6Ga`##2CY&LuRjD>N{HL=|>hUs2M!igLAS*I}g;6RLNk#vyBNC@C(eLoKql#;uLzE
z7WC`)@tt>?whdv_8Pv>^w9g~EFj<62GoAJMV!$7b+!N<qL4@`X9C%>Rpl>g@AT=+q
z&rd(~-m)cg@8092(l?mtIojS;mkk@%>8GC}ZkC^xwyRsWzBxHr?fR94sAlx&{9A6R
z96Ofg9D_P<<_X1AAkMjPxL<o|QqqSfon+g#83-g*SJRs%)Yh7|om^d=Tvavn@Zpil
z7XQRAzg%(AMIc9oBVm!J3%j!oeGnpsWZtynfyX<CW+9)7_^OY-8xRfZnxA&qvS8gh
z`1)&O(IWKScghz90Fe9f$AQ#T%ae1wu@k<C*^=QS9=C@7l`)T}Nc}UwxPwCUX5|ex
zAiv)Xg)qj>U{CTeY*9!Pac@IRrYG{4k-_`0<h+HMnMGMyo3gXxtEzf$+t%yHAA4-u
z=5OruyIM_A<*;Ep|M<tUu3dwHz@+Q0ONvx`W)v1aGG|Tz<GAYTzK0JF$j$A4_;Am{
zLe%#7-9*(57?5}K&1I*YVq<Iv0(9Azp^nEM|5w?IGPp_Otg&KZio@ga9Tj)%2mt#4
z5JF#%8if$*Sy=eTcixG3IYTyVSaHDxG8e^&sk@j04y2*l%_MK;@xT-Q$^>rUd6Q50
zU!jnkb0DG}?^T$((KJ<O#ZaXkdi7P~<(CyVZjfQ@-?huam~Sg?1nQVOjuc)25ckH!
z(2jqTVzL(i_$w<_W?`t!$}*{$Fd5*{*fXdIC%DZ!ola)d0gpP8Y;fliCSi2etcs7{
zHg4SZ@#For-SwAWdj9lNT24-UX{j#|@C5?Cx;iryiux&QsVUT{)1k{R&$-}&AjY9!
zFl1S~&OLXGLO-v7ZCkco?)QJ!v*+d>JrF{1!C=3Ff`NH?19EeF<>$9h-@>CKJ2tlR
zq?1a{KD+dkQ!D@+3h|ti0gqX*xo+Ds&Ox{-h)Il7j_4O_vKJ{|hcYrgoHXg|NNxGC
zwY4dS50~`lVYp*F<X4y^VKpTL9#A6_WX!`{v@<H;$;bx^R!=4*3U0|z$IwnDmGeRr
zk<93a&RAJlhd=owWZR0Ii-<bl!o(2?CnSUrc)ZA2vfK?qLgk)tf@zv0+c77l)9GwO
z=Xi2O^g|U6uoD&o8RTfu84+WQ5DFl)f6$-<g9kHN$^`I-LjGXT9}M~f0cXJ%2>63R
zUtOIq5J=y$rQ4b{b;-%GB_+{jiQ`k)=PREup=id8!fDg${C+2^2ZO<2Ft~sG_%V@o
zw+$mi6$fW!rD1I8+V!XI-3`O&fN{UV!U4It{SF=KnUmu`M&4IKojaFLomw_+TKR+t
zp_mwqu^kFwE+WSROo%t0aHQ%WXQYdmvxYByIQ;P=gX$Db9{~Ui!}xySz=*U1fXuyn
zi@SHX-OU+1@c2{ERRL2e5z!FhnWv6A8hAYXfU=U%Sd+)sPCV!6rvQ>}DNNl?YQ=~T
z!cmKSyBq+(Gz*@7x-KcnlJrB7wb%)R?0kk`5F&$|Y#=Ak3?V!aLdk2^40!a>h?iTJ
zno6J4ralx$pMtD+_9EBCTnjl4jXK%17r<pEVa~(ukD_6Bd#4?q=G;aoWSVt;KXY5i
z!p<2pj9YIt08)1E?z&+^)`kro4<2lMK54(gK3~P8NhLF97N2}_U3hxDP%ubm`<~x^
z8}T@nVL1C@YS;;RWQJkXnC6bm%wM{7^G%!>i%_qkqP{sfy$>Adv44MT+v}8D*S&k$
zv}vW&rd5s{X(Lo$#)Cnd3&ioj^Io7U4H|W%h(WjxC2O2gU{IEeX8^bhlv4^yl9N>~
z)?Zs|hg%aY?xS=<_<`tE-ryXbBRYjV@PzQA|EmbRh|GgXv;(e=Vy=b0I=*`U|LmQ4
zm=(pj|Ev0(*%*dlnPJ}qK|lmSU|0lEz!kS^G{#?IG%-d^V%(y}M5D%Bi8mT^jmssP
zn_!~x=Eg+P=yg}z5HYv_BC_w>Aj}NI%sHp~_eXQex8Jv_y3Wi1!<qN<%yXVPJ$<@s
z|JM6fb+uONU=Qz77GnRYUG;U>)g66wtOJuuopxvzfFYOwvaihosBrc@$f<ImD%Iur
z=MTH>Hkb4^bm^j8m-OP{S2&vUvTwsu>9R;2wDaJ_MYPhOnx_>xbONkl0eEq_ADw8V
zStO<0+^^r3{{0u7cV5|+Exi^l?6qJ)MJ|sG<SRizLCu5-)zhYZF=a}sv~-{Sk=?d9
zQtj*Ohd%ja>;=<VweyLk5>|;w8%ZWtcI~>hXV2usiG_(okL}wJTfMsX>eanJ|2(Jt
zU0a;GVZ**S?zrm7llL5Um<V4wnziImw`)ghz|r0uWt0jl2Ta%!VUyHK9qi&EQp%Uc
zkDvbTyY^If+PW1srBLLQ)Tw|^p08DRkz~+Jn>-aKnjEbJ()_1kDsrfM5oXP!z_Oq{
z80}<G7pfJ!gRFLYrcK*%@x>XdF{d@@9H*2~;;FpZXS}G+X=_r~#~<(IVAX{*cIl$6
zm!|SV)k6IW8FShVhv2teOhW(wAOJ~3K~ybJG)(mp<|Mo|JV+~?Fw{T9&MsZPIO(J%
zC!burdv~7&3;MkKZr3GC@^1}AEPMO+-+I9XJ7&yCwQIMpi)n21qZ3ZB@{jwk|7yQ|
zd+cSmmX&3qp3ERSE(wb@oTb;6^@hsIEj@Z9jy<*@k?6X0Yu}YCdoN$!<Fn6-4v6vv
z$>grlqpPP(sXq4DhKh=P(MzRZJhf^UILICqIT%oJP}Laq&M3QRG~ieG6Ls0G6&0~L
zP*hjvN1tav%?hQ(Ba?ZwyOTN#PY})1rf9#aUEtQ_C9vn{r?$70X4@|87+vlw_J`W-
z9Xoc@J@=^TIwWkVR4PptXCg;D%3_r@rZj8aeU9&!qRJ$MkV163@4l|it8)Bga_hKp
zu~G-Ca*#E-Bv_n6Mb55vLTA;*qRv$D*GB2f+(4N_vnxxgq-5!F$9+0=YDrB^&qa$W
zKmWY*s#P7=t@93%nWU!C*uDF<nKQSYcG}+V-S>4Cjg0}>%uo^5{LYIP4|wxUm+Q|R
zF#<J>@VLyX9qofcQ0KL&vT|FG9*d?-Nl00_d2`QIt2%7kR#IDATw7aQQ&U`9TeN$3
zvL%-3rrWiv9zTBjq)F9PRq4{weUWKw6grs+3|+8E_JXJ)2GOn=Mg#S#kbo#3jR_5)
z?A_D8eQZ{w3JUz_3j{KmjL>!K9(W_Gb~KE-Ea4z{+Em!nNPnd*GMa}l8g`^X?X=yC
z)Tx~$5)gaSkQP?Ey<^9&pFKO3or;e&>?~Ft%pI6=i_THmv#e$`$&y!FJEW>Ar&O;$
z_0)!n3YkvB`e!OXFYCh$$c&wevvxmOsCEi<J6I#N!!%TVWpuQQE+WDETr8E+6iAnp
zESoUlvxyU>l!;8H{r2reb#*Y#FkHHQd*Plv#k+QOShudjx^<-+Hn_hO{vhHP6jV>0
zy5+Rfz8F0^2!*Gy5p^q2?R>CYtMlT;)9$|8<u2<wbz0D?7it{>jB-$8q0qk1Pb4;X
z>$a_DPuet+sZ`0HJ;gOOC3SU0yLX2|SX5I}xO;ce?%hQ-HOaa<{c0%BtMAsWX25{0
zRaIXceYBs<b}U(u6VWOv%ym_(Y9@KpcEJ+#r>IG4Glxb7c0}}c;rYAK4r)5eckcAT
zx@#2;HHW9#ekS`0a&#kzG>pzwT4-^jqK^&Glj&tqzKLAaPLd&rwi`j20|Q#Yi!F$d
zmQ=gFW5%qXJ-e~6&?a%ZhYfu2W+qh3DA`ElkTK*Ub)MO<OK#cH`LV}3&z_xAs{Mk3
z)#sm&8kn|FVM0_I)e)GMQ0=JZ!T5`46Vg^z*jaeli3-|ug?W-W&}~v9bamA9ue6kn
z6&0eQ0_IGlIv;iz{Fd<j_M11CZ`e?_VM9?(4eXy#O!`0dRBfL=1$*`s9l*z~1JA1+
zJb3d-CvBNFEnQX?1c3mLoxuE8nGZdgnM|hL=FKPEd#|Gv_0-6bnW%7zXrGP>4rTtA
z(T?`%;T$unQJ&|erEDxK+ufl9Z5>*KuINQ3gI;$`dq#UlthGO4MNY)^p(5I3XwGOG
z4vk58eqHCzfe^Np&_a~&+!_AL)Ie18S4BW&kERF~4Xp{<T%uX6%~E?Nqp;BFTwoSF
znE9}zOxc3+M;h!rTBasiOzrAUJaN;kS&fB-u_hgKVESO%8I>+fIn*lCoE8eB^WjBs
z4yM!PPd(NCrI*^xn<sO(DmI*bc0)yl$U5s#Dgv^|$^-sPm^zrEWHPB0Jd^|&4NG%H
znnwq8LRWp^l~q8JcX(<#yEsKe4Hc1=vY~6&>TccSF~`s|Vc^4yFAl#J)zoxYy?Wo@
znl;7Sx65pCs3@h{wQKCusj*Y1hK?P>Kx605iTe8b9z9@vvzK+cxVWxwU%#MWU$!(h
z2D-kR=Kq(1mrhTdJ-g6t+H8HNP78YX_Q@+cRY3&V<xVR8&{0NH6#gWUNCaS8JMH+-
zE_JZrOr?+R3j^Bz6lGmt?w19qt|HpRgtgPOWQzbpfgq}LDDWl8WKD+-9jveJE8DfJ
zu&%DLwA2UkPo0@i=RB}9)F%%q3D9Z46q%CanAI+bXfF}8oZ1P}x=ql!8s?a#2p}z>
zc8$Y^ZNKTJ+OcD)^_GgRx7J#9us)%zfk~oHORb|1S#=4pi1EwZNu`RHFK@SWY4PI4
z#fujge)?$>L@s30nP;xJ^wJ=cLDfR&2Hg@ogb-vG8bDQ63Wov~wUfXhNt-KGJNVTj
zo|C}f;Zy{qi$P712DG12*JEnG((~zcQpLr!LxyY`I@EMu(^p|=fhK|=5J6z_&e5)f
zns<lIpWl7?a{FBr{}?$kWA2qCaAx}1wd`S@_}TS->XRlUMAax&AMD+Yr7Y}u2y2cd
z(_#_2mL;N9LSYeaQ-%cQks>wqc6aV<S34m@?=@>y3?1r|y*E)jRVk?9kw@NwLVsvV
zPV@7b<~hoL7$q7oL7SVlMVl&~##T81Y8RB2Hda;b9Y4Ols;X|tkc<#e#;DFAlTPcv
z6u@tWDnYEyC8aD#r<3V)K{}mCrNYl-DwRm35{->sV`HMRvCCio+Awfn@v>z_pM54<
zV%^00i!WaJ&2Rcqsnb?a0g6+V4NN1FI*9rgv{PX%4;<7^3q09WzxNflp%TO60eR~c
z?Ez!!Hw~Ch)_yvE)dsX*?dheNABKHkorK}AwtMyURe$}f<@%8IojSeWr%zz0UFtMH
zJ1wMy%8PE;;e+ja)Hx_o0a&0!5u_|)^WT(jmP|9%K=c!Oac!KvsIv=Mt|-pJs&=M<
zV-N(px^(HidbPbAk6y6g^C3f2NvR0KsXI@Hx(mt#Q^K{`?vmA(oJU7cfR-tZfHq><
z=1FUp1=<a|kjt*n?b@X$Oh`?d)G%Q}!|>r5DfdZN^u4Th2PRsU5*VZoR@ShK@3d`O
z@1;w-FJ0Ph=T53*j_OtN(MRs-wX^!_tJnYAzxnAj6%15I6|hubEr;GqEl}5KqYa4K
zp-#5Rng`1zh*LiLuYlNp!m3878=_w=pN?O(0qxh=G{S(XA3^=**yo-rb=Y292oXs6
z==kw;D}Gq1RQ8H!&KtWi5Gx5b$D;lQ)Q{N9#ge7ktkZr5x=vYGds5mbQU{kdjFP6!
zG*e@Ny_WC$+xqnraj$F~{OPA1cJ10-Uas!qljqHm&Lt8F)IwpotK`Fkn=;>&!!Acm
zC4vft2JE12(DaF_pB<O`3U{?j|J%RqdgviPk=WOPW-^&{+9xyc)M?oqsS9<k>$-KL
z=g#e&<5txBk06m)dCM(Zrcd_`8~OzX!9&Gqm%4(20;+bf-J&v94GFeY*lg^|7ep-*
zZ37TQ`Gi9iM<<{wNS!!Y4q8rd3|PYSt34s~lcMsr{kCnRUV6!Nal})jM}O9>n;;%Y
z3A8Pzc8;oI_*G^n|LDm`4`PczShG%D76$B}!d$gbKZu-K7NpfCphc!_-7vi2sH23#
z{s5Q#`q%gT<R_VMceLo%xS_{V&Dez<LMD?j2_EfIs65a-*VfY5FbdcU%Tivn_-I&L
z!7OTrj=S7fxT~FCULGWqfuSBKse_uAF@U;Pm0E==_^#{MA2WAupGAutBY6Pui;6y<
zHETyzRVFKSXadqyJ5jm9%1uQMN}Y0MdeId(@S3!TrDderk5={q;Gd!KM=b$<!v0rb
zulKZtSoE*Sf!KpW*FoD`j<#)UyAo6!K@d#(``;aR+<t!4sDF+cCCJH=ED;jAZjK6-
zd%r-7BQP&b5+u7U*SBPyHb61;eaL`=4k5edp$Mb$(n=i)?CI5OS7l{6dbboInMzH1
z{q@(UPgghc!8|JzJSBA|!P907Enn3tVHY8E>g5v9ep*V+6i?F;6o3Uy1N5u6pWbh0
z(z#erCre8XNnIk581mLz$3FU~Y@s(Rwg{QBvSoMQy=(Yznlze5noLzrUiMjXWY{UG
zLu#kYJ9pbo6;>D}D0N!dgM|w(WzjrK)mM!TM$eM5^h~MKzh;JGzgiB`Bxn;3GY8Up
z*|Njkyy$xi3ZAa23esuXt!v{?JALg}bfy<|=%KVDg|nBeDZ5O#*9v%j+QGrJP!e&^
zAZc5W5W>`geBj4|pBqMwEO#*3C%o~-$D>E@?9xRLf2N;ZlcEA9!3*)sFHfM^rIH2<
z&aPyRB4;m08a-3VS^_jt@QAiW*l~Wp9e@@9>h~>DhdND|5~Ts2lw+QGX4KP9yC>rS
zkgBLy_MiV*)4#t;7j@E_qz?7JszF+$j+%GKwxewos+5Wba%O5}4@KKW^F)pfgZ7g4
zo=$tFBpZIls+Y?V)4|w?2}2ivvPfn!Q~&;Vmy7Ri*Y1{!E(*xP$Z+(EdODNTX}f;3
zXj!X;f>hMl<ZF-6vNmBUO>H*^(@PTzS7KWP4<;PNR@;IsQkThOHjf@X%t7tEOlJ6^
zMf0XjLpPGy&BK&!N1La%^@(V^Pyww5s5DBjS(3f+TAH&qp#4g*v_~p+rcdox7jm=h
zV3(@ZJm2gnqopNCiwzmPU_on>x?Phdt+@XBy%iN1;H|Y7vM|Zv6=2ywsY8ONRXgg*
zggulnx77eFfA<X*o?Y-vY6nvX1N2kdV1nG||Fq|z?4>7IT7r8cafy#5?E^plxXb3v
zE*Jds$tU}Xga=;3E3?ZfW%ThC0qPQxGz%uR6VVRECB02JO?zD1FPlV8niX9ua$3Pd
z2}d!6{aX-S=S3YknM|ho=%aV{=+R-*rr2yb_T`t~1kOxtUkYtI+D=VPFNiLEG!-S1
zI+OCnex?7SpyQ@`MWamvj^gJ+&T5A;-PB{6)Q+YHHQKV;+6j+6<{qp4&F;~oH+}7E
zJ0?u<gTRljKDC&4Dx=_~kkpyhr=Z!p1bD_AHdkSobwJG(i5!wW7r~>2P7zUI3v``6
zJq|yqT$vh@7ROen3L@9*yIfq`I|M<{@6%6RuJ*~{hcEBfPi8Vo;b@MbA%dz5T5W?q
za5!2@kd?i(qtPbKly8nXsqK|aU7KC!RI2S#hpau%V9~-<1kv$gGMO}aGWU^4eDtkv
z9s7%4xa7e2dGp?#JXzf?h?;ju_AHv`>-N&5xoQ$Tp;JCVDzH7E{c1U=jgK%0o-kAl
zp%XlJn&QcXU8?C*6^!~hN(QXfaNIR%&YZ%!x}4ImKM0b^9W!QZ{OVV02MtoS&yTul
z;S+?~tzp#FWOTaD)44IBVP{{HX=<yqbdYo*k)y6x`ZWMjXVN@)cWu~yP&m6yA_de8
zt!mD1W3PrU9t8az9w$#H63?D+f@gT3SO_82tKh(pQAWMu)LTGDOQu>xJC4}mfH7%8
zmeT%9D|H^3qHD6$(S)N^Ynu-mEYg0Udfd1T6DIU>c)9D;fBth*uU=~h4n()3QkO8e
zVFDm^2$U8&f)PO2L{$0UzXGzhMMP^gE$gN=C{u(@@we-r3pv|%Lf5gHnka3YC^0hX
zlsNfUzv{ktv3r#E2kDL-x14$A#<S0E=+Y$!0zZ{P11=Rv>%5w(Qo`JTP1iHHF_B?s
zS)$@uXB}V@3Zh0HLTllnp9Dnn?B#CxYCl0lyVt<b)v7S<r|iWVdqR^z<6;!Cf>f$Q
zb#?4T-W)&vi_V=B)-_o&`oMtHxiO)_X+7bI=+rOm@k3C~=TtN<&=I=SL8Xq8tJGP>
ziz2E(u+>0IE0bMCqWJK->w2AYj!VMNdhD@BuDYtOtPI{)-4W@WX~rRlYF=zUo4%rd
z!Ip)>G@}r?wl8f=s6bf4?jonic`p^(ThUMTU(_jwUjy)H9Tb2;Z@zi3q^`bCpV}ji
zs2wt7_t2rchYt0_YLwMERS~r#I|!_f;gwNJwZ0}h@O(5l6`;temiWZl4s@Cq=uEn%
zsU55p?#F4hF@0(SE?))Fq!x#E2Qq8WyZrpEDN_>Q<rpwG)b-&(s0Xn%DnYj6G4=Q`
z{sC#!rhma-(d*FsfgM(?)IpV^B4<)Nt<-sj*-Dyl+IFB*5eZ&8ozApx|F0Ww95riJ
zY(baQ)gAx*^Ut1lp1Na*YIGUhg3L^G(TX2^-MPXp0H!KxIys1TVy0ikUdkmtmg6oG
z=typAr|nZvrAJYb(G_Lz1XzOy&6_vg`F(QDr@nXZ+9Qsr89cal$dH=D4^OpgCsfVz
z{Q&G|M&$unc+`Q3x+>T!dBleqD{@K0g3MU8^T10FOq!<+(_g6u8Mq-xubu0!1nFmm
zwR<&%=~wL$O3>6cj4qONyF#Y8IAPwbRSgqWZlIB(wo=h~U#)E?NG%cuZ!;|#p=<t@
z>_r1}t=d6*j*6T`@a$>_FBq$KfnjP!X-p_c>f-5idgtWH>EHY&SzjMp)<-T}_+eGm
z`hNXjR->Du-bQQTd0^ENsvCkBWEKe#&b3`#*>Wj#O_$4BPP0c_TZk4~U{`2#OIT}R
zzM#PZY_5mD@kZ6d4~rbf-F``lUsU8576!$|eqmu4hM$?jLi|}$Qs1px&A@@F(oz9i
zaw?_mf3<>_(al;zP%%s5aiV<?9f>2&L*r8g%n;Nog}^bONzz(Y>a@`?<*nscBHGmo
z(y_V(1ZkWBsb=&@PFNb7*VuT<AN~+~h4p>=Cd}_&R%NYnL+I2_D|IdviQbVGhc+y7
z6uc%&9nw6M3X|p`B=KQtm0o?qnord({Dc?Jc;4pe(|gaI8(Z8$hzlNg;GR40%w!9l
z-pD5lRWji5b1%D#ri`xCg-Jk~7g#Mncfk+_&1=pzbB$O|v4u2C?M(I6i>@dW(J2QB
zmTY*Q*Zac{tA6)8cd4rxHEQLoS?TO^nnKsH!k$#$t7hd*7<yRL%hQ1s(m8b|%p74}
zHJ8*)+QEOJ?g=`eJl#$ZA=(V_vhO<3DqrlUDH}~_OC;Cp2-3Y;J{<#=u>Bw`Q1|~9
z)z!_o|9+P@9!Sq?g4)6EKCClniIZueQzE)16WtDGzA&^7dX6w;xHgMWr=gOAG*2sa
zv6=_J!rxN0qooGZrJ9KseFcva8!Dx1FTJ$eym<v~TcJ*Q?zz`aKV97yHW1p+B*0{z
z7k$gQA2shJ*_Jkl^KhE5{Hn><%=JdGC*%~3+|-V08~hp;ysvu(7By6LesN9B`1|j7
zm%44|oU`V}8-);pG{q*^B|_JF=`~dq)Ye6MeVR<@!_-P09G)k1&_*lb)DEUd6#;C+
zmW+zcIuqJ#H07%M)r6sM4GjIP>9{3qIs$PYX_oHTapFDqlyBT<xtbzfRD{$H=7743
zI-;spSTSIA((X}!hEN`H=+PXol%^o9Mvx3gVR#qVX^3cN;yD<0v9gDNSCdg_+0i6>
z#3|x=UO3E!F$_s}?!4m4D~H^EyGx;udE*Tk1h1ZP1}t%^b7-cJ_CGK=AzpN<SP7o0
zJf<j_{zV%_3rbzC*KE$Mb5J{2Kaj$q$_IZU!NWuFV0e7w<Bu2A);dO@e!zgW*IW~Z
zVU46xgbu3HEG<^sywPvbC;G35x~h@XX^lCGR`XEnMJ*O$>Z)YaxsNmtWe!p!i#Q3=
z8`2|M90iXS4N9FL{jBz@J)r$+!bR{pY}z#a-~YX2=T4Uk3L%zMRl!yh1OXC1X_&Nw
z<0q5UY0W#Nb~5UlvX`dz1ek}WoK(4_l{%zzNb?*)=jSAKC<zb`yg13vJ|P#%9=hz#
zlTTi`ZQFncA9N}AW9H3UeZ&!~hYS&<+c7Nxg{eborz(jbT_Hg$k}2&b_J_6|l)L9_
z+nG>O2W!71QU@>6W%=@cFTd<~>!6@u)vdP%g@q#OY@~x7t>LBZUWHB=gsz3h8a*QF
zE=R2nc1d=rgYG6%d$u%J86C&j69uKt(>=js&os+H?K!bmwqF(%mgUp&D-F}HG<#zY
z7S`1rfA`()Qdir#^Xf5Uk|1tW>cZ|-01uL>UKK<!)h<&-qWSDnD8ib<D5Ioq&<v%{
zq;^uLeDt7<8inZM@TMqYw6?(NDuL8V@V;D{hnv6t_5Q#Az1Ps-Qu=58;Sc|~=%Up_
zhCr=ShMkw4s8fRHfvG#%35VD8vJN(y|3S8oQi+B65H!y}*__`V7+lp3RZ1VYt(C&5
zRw}cvZVHIq154(p-~G-tno_R5<(B$k!vyFnk;#t&RPZeA))H_*r5Yv>_D5RprB>>a
zV9yJS)WOP)x+)0-Pe$jiX~ILaQfE)E=_}1Qdc;xcv{yz2r2VuX)CPp1gEmw~%^*XC
zN6((!-ff?-kWZ#flLZBdOopaWrBp<_Dpb3m&RGNx4y2@mZ6|b1fX2<9)ijG>GZCa?
zfq_`flTl&Q{z@weQa4zXI>`@FT^YKR5<K+t_n&@x)cNNZIE;7_>GWBD_`~Dh|NhoK
zeP9EDJsUFYGT@yFP;}vCJ@OiQkrgu;HSb_ponwlv<zI&cxp^{Sy;Oo11VJcx=*)mP
z58*{RtXNV0*=LS7UVZDW)u)_7tAbA+gQJ2M#Hk(q)CTBRd;XyQh>pRvQfHa2)3#d?
z?MGDI4WfeQk{oU3SPp8hX$m(DQ*q?<Y5EESC>&QGjcvZuk|lke-4#NJRB`d=#~l|o
zpYStmP#$sqtFNkp!GRQ9pHfgzP*_-KU#Nm=6pWIoWG&?@NDkBdltk@Bw8^M+!GKBj
zWSqR2nv9Gp6D`Vsj1(2>I3z=!8wr9S-Ld29?|pC39e23YfkZle`kXm`y#9K>s3-vI
zVvvys)eff7lnRw0FkLVJi$+x~RdDp0mTG^fkh5*4+M&`p0o*U)Iev5@lOSF`DP^x$
zUv<3k>f3IsKJ7Hv?2yjU=iaodC26A-)@~7fnp!n&w@B(tI;R2&Fjq$nJ4@?DaWK_m
z)Ow}P;1kh)&GfZt0d3~HV7g{bpQf*<9O+kcmDD$TnaPZJ=pmOYgrrJJUcc(9O#Aj;
zI;}*`BTo%e<&#;pOM<1C1v-+^g(|3a!CEANcPntK8-f%H%0n1ulzUKk5VX!)luvs;
z`U>wNqH?P(+`ue&0T^(gHmH&uvg6cKD_(rD)BO1^HKDw^`uyMi_Aggn8D!u1>VX#k
zL6gq&ymUHEQ-|W<fqisUR0Ck!sZVVVsIr46n9e_h$j!F%z;^5j@UTcSnGEwW9Csj@
zq1Ta8mM>f8a?_1J{Nc`-GgT#m;~gzX@B-`PlZwB(ouxz6o=;mWmAY65X41SS#ctS1
zqHVGHDXj*ddmyK;H0LeA6KFW6Py0bsl=Q1554Fep{N*q0SFUuqf)HYF=gx2Z_{TeX
z^$Mj<8FnGs3=zbQ35QTFYNs7Y!4$!qi7g9Dwxh7rsh!YC9coJM0qs|5kUC2tia5cO
z**R2-I>-0@prByI&wh5)g%=iW-|kW$x~^Y;<@MJKA!^IZgG8dSq$E{Z8vdo*x6hQ7
z`5ih0<>f(nx#-x@uc*ij7?3F`q5S|XK{bR@IS@nzkER+Gld5&<nl7D8t0f1u^MH><
zfTB$%lc6~u<|DPJ;6+sNv|G0>_KtNUM{fP*H<49`<W2kL9puTReTOh~ZS){Lf*K5J
zX)aP{Sw5ikHJREliVuvlwkn%GVV>B(S`J!HLluU8r3Y!)6ah;dV!v9#CQPlpaND+i
zbLPbUJfyZypSNzlxwdoXQ0lzsEDQYVf$hXZboG<gJ#JAuM^7frNmJ3#GwnI4Z8*ZJ
zd3G@~4Fpj$kx_lM6e5kV%664}Kf3@#n{SX*moA^(e*5t6e?O;JQn%l=%jGn`prCHV
zh&|)R)lZnvc+4@Ps7S>@M5Qhu-q(=8!PJw)X{0j5Jw>gD+&q~o2L*9cNMP6nx*0oo
zazRZ^(qRgB_5JsY=!gj#cJSo`CbbKqqDz})PH3AeY<o)TJj09~-SL?UUaVm!;u@_a
zV=+{frL*{1J{?c9beAZsJs$;JV&eD}2DD#IXtRC5z4s>e>~Z<|&f&w~|LIQ~N=m%w
zf^t)rtxP?21P-L=a0=Ej?J5;@J5M+96I+6&a~$(ft35ek_jb^)g0x&yA(|o#69tF+
zFw=tU%q#4y>PC%PdF7P@@4eUYUha6QRN2CXWeXRI2Ospy%IYResGmA@@6@T8UcG{-
zlR%qkf|$IP43R+fReIesu=SAhDiu$+uvPt6>pZ0Am#$y$a>q<rnIQZ3P{U4rs{dM~
z&XhFER}rUkQun-pr9VOnr`0)AQx`g^lccwT$1PP;I=ss`r?2#&rQdXyH}^Zn9@hp?
zI9EEn_F5;$d1xU%m^CYtNO<YAPuBREdTn?F)iES&rs0%H?F6Y#rc8Dz5tnSFby%Bf
zJKB>4>A`90OsxhISjUI~m{+5Yu2ArN@Pd&o=bkHTYX|JlO@O_cnz9#OD0|@rA;hi=
zFZ|-Bn}T-jU{ocr<g~#5nz{@0uR~Gra<=WX$0c|nVPH1w)K5y*u8qB8^?BzB(7KS+
z!PlrF^G@r-46jM6FN&BwplxQb??^=VOo>%HDti{qqcNdL5V~$FrwS@{`Uk(d1Y$oe
z66kml)7M-BC=7wewfPpF;O*Jd>&`p1SD?H#cdjTdR#qJ?SwX59I^wxKzDd31Nw7*q
zT9-Kp=W;Y<Dg8>@9ZecdHG&?bztvt}8!(}2I|?Yg=x&)JT9du(EUfCXHe7gNyR~b(
zzwm<nzAZxeoH@nsy|?YY`_h93g>?)@m1e0Hm};r>{g`s5m6O}Noo{$(QQ?7&b_8h;
zBAZPvYS+-ezZ#xcR;D1qvq)VCEJgaMZ6TKC=YhF8s&+}RIshpgwe1q-=M7*!)99H{
z|8<l-8J(pNprWIn*fqnVNiND4``P3`?7^H+zv}Yv!v$^+*e(C*Pct1lc-eiYgsw-X
z6;gvRtJMGiAOJ~3K~#dFH#O{H$5P4YN+?>#grOqEjxg+5ZNV|sv0>A1wRh1blO92h
zB`{bss51<Il>kqYDDy6vO!~gR?53N#%%5N2HYe9iia!0c*BNJQdho%9DO2Fc290uL
z+{7nMHO&?%eyyLJ*JQ#n4l@PLs0Uyc7b*>^Lq)4s$KI~-u*1|v;Hndo;2|F-l{)tp
zWeK2);zd`cAj3|pdFYdxbQ0K$wEm&S>{xKxQV{0RnKZxGm>#5IZNOds>_5>4n($xk
z*VyCqys~GWaXGPO)TkY&o=T<8gtm&(3T6>JRl#UYlX144$h`>M2MwqWYd<Xk?N{`v
z4bTW!;%2J<H1aaKSUt#^cYgMX<S@M8!3V1@x+u}u=$K2*LDtuIz5e<&&pw;!*b$XD
z{6q$yN&HlLVFzMr{;iqZJedLvY9!FPAiB{$8n6q}5(-wVh`r<9e*KWtA%%m^Os!!j
zbORF;^uPA=kyU3BJlf+>tIjh#V@E4oGm+7jOpnA?U#T0=wTSGYuPtJ$nG85b!PA0H
zPAp%ZbeMz=lF2nU-6RY}sgjJwXCm5V!)gXA7&74O&VxjBBNf!0(KI$~z+nNkM?qu>
zw!YYd^yk`u_U<n6R8^g}2z7Tax*<T2T_lo-ZsOe7v**f-E*dm@wqpdENpkDfF2DH2
zrhor;?J!z>s?Hn=Htglp1p}RL6J}IPbyNF~oOgv5*;Pqul2(Fkb)d``2Yo@1T(ic0
zub{B7u}2S8d+g3klMfR`9;y@#o3Q-WGrKXp=$cFmj#6i8*iD1>Yw&`x6<0=AsiA&>
zUc^!M90Sb^$9}bgF5B+SH(h?U^;_R+IP5T)PNPfFaUld2w<Lxg6**epl7?AfQw1|6
z(-fdFw`ZnSFoc7K#h!pJZn{yfNaEE;O~#AP-a)lPf|p1n)}McVV{!4Y2OdB*VL#FF
zAOHAb`t;i4j-!I-5!aLt_Qvv}c0a5q+WgV>0IiUmZ99b*eFj$Qq)yu^<eoh;m5RAt
zW1}yn4>Sy_npWhrQioc#M{IejVYC-O2WdrtYUk;knMeX-bq>}x(b7^E$!Fbg9$sHt
zgI&gPlK4H;bx`xL2P|Rtf5m={J#IQPxqG+E$y>htZJMj_D?<J4edSkMU(hba9g0Jd
zB85`iEfg=M1a}Eeu>vhtoZ<zFl@@n*4N$yTad&qM7A!d2!|z>pt@|h34=>-cILSF@
z_RKT0XU{x?qb;pDS6JNe2M=t^;<9x_n{UivZP`ci-5zbeL@#PHd{W6ghgh>l%QoS=
zCokXJSE^5<0CkP;{kx?v^08;FYeQKx_Vpb1`^K>n#8arG_}}n0<b=i$E?inMV`%Ja
zQVGLrCb4J4m{3cG*g(+&#~1h>YYFkiCG_Gl3<YWBfzP$`<Zu?sy-8fC4rNUq&2)t4
zF|wLEnZDmMx)N%r$UE*BrM#lVv=dMf{%%-qobovU>(J&k#I3juA)sc+?h=w_nXD&^
z1DO&k8@53qYnM^CdXA;J7>~@mMT)k>sSQ7P=5=R)T4eB-^nq=(?BKGx=?!q|`li2E
zk%_1&l)!Ie+3ObQ{}W&FED2nw(N)SfS*W9ZJfSP`L-5V(C8=tueJm(siV>fb8v8+1
zHrs0#&O%I^Wy@lAuNm@{O9}yuTFD(=|BG9?pwbgx&Xml8SH06+ltx|)Z!X-<@@0ul
zlj3oej32gc3vjT41&oPs#{LowRG~O0aIHq@iqP`VxZG8|{5|(-%9WUTbc}vdq-?c4
zigcPXTzlCpZ+PJCCwWU5vBfdO>1(S+wl|_0Y>+ApAZry%CPnm!+DtRvK*)9TIzU})
z<x&IE<m=Xs7BM1TZ!uMD<k$uQD#*892$JygW71>q?;8ki{~meU<O7?8^w8SDkZPy>
zX2ptvP%Tnyl11j(ZMBkTWL5I}F)3Y5!i9@)0{+S!7EWGko8{q$5#sh1ZUN|U&NagB
zj#wBg?}-R6{QiOF4O-8strWYEoPGMk46Uic_G95g)_%%SVM~HSquDDC1WPgRjy{9F
zhm3l`p@Q0B^@4M}K1&#mKQ`7B$dkKH*6{OK^Q@o1^-+WLKFb|B5lG@jnSToCz+)<u
zgtYlacp-9ej);mhtINv^TU*_ajjlvYPS$DJbOe9>BH3aHNBKCUFKngUD1%{7hbCT5
z>mHawuI2E&EGGVKKQFuRpUsa8S=*6JkP>GljV3s_j9}tiHBA8q&Vfumm&9{cYf9yh
zHfu}^ml(7lu@?XPS`8~JK$bwgoj8QdjOvYkREiV3PA!g0$j2C0(}p`kB#E}ucYkfc
z@}KCTZgY5I<Z<|}TKU)^;ppiy5xB3W16X_5Pd{F-N!gG<WkN+UIx8ok0ajG!7TDP8
zG@=KrY=J^Q)mtU(lXpC@=o`z7SH8|wSE-0^5v^s@h}}GH3uP>SMmb36D3Z-{3oGpr
zK(hOwRtj1rfV&I`DCsfjhZZHAH4P~B1n#<6W*UT59%rV^k14mCO|>V!ESiuOAh4x4
zBmvv*WP9wkz25=xj)wTC+Qo~?mO_QGe=Foc(<(+U+RoiHrP)vTmyq8H&pa=wTOO|n
zzzoadT}Zf9Pn$4P31H1J^d%Cz`Ep%x+l~@A*|4r9$WVlnJ)lK2c98`A5EPu3i?*HH
zxYtTMawd4OSCePl7G0p+0{{0S4*yu;___lJ&(d;$tA)hPC+VQXjM&0y426p`FBwCO
zO)HjtPR_1dinS|s=g@3ll;&dfW-VU%@U<?Rt0vs~7^w-pHu$I8ot?Uv4JoK7PMj))
zJgc5Ca|=_I9^dTD;qA}wNqffGlsJvKdJ9mY?1JuP^2klqvYJO#({T~qNG%*`0i|d1
zpEyOWeu~F>(KxfeJhb7IfS#vtj)|GP=S2jFV$_I_+NV?MyUv$`kvz_7xKzH8qNLZb
zBzYf=E2^{|zfBOPL)5ovvFpNzEBw+}IWDr5xeEV$fM=R?&eO_9g7k~nJznKhfBhCA
zQ18+7EzyCf_XUuCRDDO2u56nSF`4zgW4mk<k7G;_D;*N4iXn@liGXJ0>m!#amM@KF
zAuB~e9#?Im^rXBPyuj3QB{s3oKhiOaT2s}J-GE((Bb-xmY|)*+F?ap+M<6?i4Be+r
z8=tA+c2>~3&n}`o45I2)nVniNS6ASZ>X~!mmVC?b`J?xt!E-dTJC2#=dfI^VIj2Dr
z;>yw6yz``|LS*B|O{<Sg8jii#6wi2Xp~|ydPNe895A6!(K{_TU4Bay)gvI#oHkD37
zdER*^fnq$D<L&}^lwXlJh8QN3++;D|A&*oOI(eG2=G${(`x$dsNLSYAYKjVuTc+7#
zea1^z_SfcE%hCA#(V-x1IMh`aVwh-`EDq7<_~e^TM^p>>dD4PiqQceKgv}q#o<>oM
z^oIJIeeo&{3f!&H!zy*`Yu``adW<V<#KGR<LCt-Jk2YqN<=xd%Ao>*T7ug{-`Mmyt
z-{?90SZFGFasfNUnWqY?W3@Xepw;ArlzA*(C5ALhl?7?`AI-bjcvfk(=j#!HpRBUV
zIA1$_X2(TSY4UpsV`kzWpq64;Xj2dJ$X2Fii1ceicK%!SkjOi9>YU*1&{3!yy9j0d
zPUV(AmV(4Vr<IGU`%%HJVp`GP_GL5s2lsM?jpU-3u9;WWG_gd@K@NMNHh*Ni1XnKQ
zrhDVMf@x8ue5BeVjPGG>;^(U6vB!v`rln;cA@DmOJrC6AodbuEcJh&@Vy@%w6uRk{
zW!c;rihC;aX=H~6Je2aWOE&o9pCzq*zneMnZC%;#V;Ok+aCK<lVDp+aOBAC74Mw&5
zd6vOlWX_Evfctx@MG;?|UC3yxYMi6ezO%B#vCj<T#fWgA+h^a&P}c7pC1r#9?R-*f
zv_p91HVq6z5W!DNns5>*9r4)IYkgI5f0hbb{@sm}jcDw=5-e1yxt)vzpNEF4l}A$b
zX&T?Fr>E`tQAEebJXJ)jDV9iP*<9S!Z@oi_#Hdn&#*cDYvMpe#l%GfE|0NhJg5SJe
zAc>wPo-4!sY^Y+%`)oOzL0<yO6VxJeRkXzN_PNhSf~6|1UFFtyxvAafQY2Agnelld
z9))FVs<75im=0g}fG*>GtHDfcd3!N;c`Z_<WGkTqcCD(U>rP1~9u&>DUM7!&K@L7S
zki(7$3*IEST@2(;No$Ab_03+vCD6lN&DCn{;2DtVa(z0!HPB70g2{S`OQk8~usG~I
ztbj+GI?4gT`g@*>+PcVn`T@><p+x(7Xh6!HB!1Se$@MO7eEdAgs&S<pVEoi@XcN~n
zt|()GPmc=A`1otX!Ma9BksqI>fcoDBgz^?+1$RJS7A8(gQNeqDd}%O=Zo7N+y>b08
z3fnYZl>eu5g;V}7L6)3(_W6D!|2#<ywtU*K*1(y`mQgeN*Ka)6n$Prw)1*d^YDV5X
zo)@%RWh~u#t;Fq5=iz1Em$Bbcq~vp;>5lwv5jomSQP7xF&N^(LYFicAb>HCfr4J8Z
zbe#M$lw2H2Hyxh(l1Pz_vXp1Cc><Osw_wd7>q8j+O<{+L(#&~g0-HzcfDmAw2|PUo
zb|?l_*`H2;N+%A!QRsdUig3iF9xSD9nn$Tqoef&O^PC*I0jFZ6<FIpGnF_>c`+9eB
z%i2O?<aG$=8)5fa57RVfoDwP9wox;GTegkXH7MYEtCXo{EAQXnXrm_e_z<aMlr-`C
zb|hov`2O<pelf<~{*|I^!Q~#jUmPq(r5K%a_!SyJo&o{yGhrgD=_V$LOl(=?xxI(o
z9S}Lkt=h0rsJG6BhnD|920LeNV1+kr14(MujH0d;(8XkQNijm>13=H^x#Vegnd0z4
zfIn9qD3|`NT%aY1MSBNj%WxYkm;&9@vYt48yr~`CmR-==5SY1IYT9v`3-i0tP*aMW
z9<H6_n3o!TV8}|jlkXWLg^Cu~(%wV&sV~Jssf(rZfx!k_ckKYXj(qLBD>i*0vq3Sm
z<tFRq-&AS$n43#{)O$83P1vebu{RcPBr@AKFq0AJa#3eQlr3%0qosv04M-1P^~NrT
zlV(lYv?Oc7cO4$|?V^V*a?r=AH5}Ut)5s>r1IEW&>X+gtNI%%xM)|B`xhQFf2d1Hs
zf+CvfDRW@EubuQg%+m%W?oKu)_&)wg)q{7FPewAjM3dUuaUF^mF=XFx4Wd))G?U3E
z-zSZOyyWkbRF?}qtdbXQtA8>P0p;1(6Vbj<)4$*D6K0>(>ms4;yrd-7J`{C?!AV4E
zFD#z>0+BGUfI$b@XxNz^Op4oES-GzcZF_w9OCT|M<2|bL#(jP)9%s@~vd#9Es%+I}
zW03ldbxYKR^Y))RL|26$B!6Q5-zOqa*@2CgDw`AZ=u4TMp6Wl_6p2F>_F?dQQ(*SP
zj|+Q-x!Y{JnKqyYUIpURH!l^4Q0$o4>zAh!2Ur5|{qF6Gt9axp+0A+SXlZb44Y0>S
zm%?<y3(A4NA`8+RHzI}H?#~O3B$98shz}75&$nYqZa#?NXrh_FB7{ik%TLTd1iNx(
zd<z_c^I6Yu0#h;v9DA00>cM$25&xLn8AQG0OZbbI=RXuqiIn?uU=EquD<tuAQ9{Uc
zGIO|bF6{N=zj%gq!PYu6n%BccW{e-l0G_gr4l)(5(+IAcMYn}YV&&KALL<4(Zh<2f
zn|h_<W0NAy_gf3DEU(#1TMnw{Dfv8UzNQXbzY-A8ctq4&0bGrIX_@wi?_=20f_)O%
z2U|jzV2X^}KP9&br3D%$PkLD5*~7%!X1tEINXc3s${f4vv=k&e1vGWgimr#0sV7Ks
zk7Aui&b(I=#yDOPn@E5ah2$*9qgzik*a)~QYph0ehQ%+3CX`>m`&gD{%EWGlgbW1x
z`d~2s1mjk(#XpC}_qK<VMZTt4-R^Lo6_n^~3=?AeM8r2xl0(1M*Ez8(Tk@YrGmcXW
zj&y=wvIqKjF@LsZ@V=jKb#^g5FDf&@Tq|`uFWGt-rvg;ET>Y*fS@CNd=nHMR-VR}m
z(&cqXE&82(1I~-kR`x=A7!^<ebN22Yy(x~?ek7H44}l0+tDt!?jhq$o<Svg9+mT++
z-RA_peE&P%SJYu~yvp2I<o46ZrI`I3uSwrePJ?>H_1zhnJ2T`vK9E&hYq_Lqa$R`%
zU2y=~N!64?)3n}v6W9-ItH}R|CmqptPG`GGe+OG`!6Y6V9%tG(2lZR(OAl(#hHpQ0
zeFrl$;u$pR@~iC1a+1Y1b?8O$c_?^xegC%+&E<Wel@Qk>j+jjbXm@KJ9Vz3JNrv+p
z$LaLT2cekiEbiyj#UA4?UDd6of&&V2IZ4|7HnY;)QN8<=F~qVJMJrwxTCyIP>Af@j
zmQ6dzFRDo~<@I89-VOkEiQ-~QRpu9zR^DH>llEGDIHqa&FDx_>uk(MnZhk9Hn>^&f
zB(*%=9b0HUiTu!+`q=+vV;kuCvHw!lYhlt~8%e!{9K5DvLvcaFs|+`b=Ck(~m$-?|
znJ1l|QSm(=v*K(5(@41?<zoH*@J`-+&|fO~as*c`t!ZzExd_-+dnZ<r(I%5>_%NsA
z5}WDl3^$2>H3B)L{^HearHmGzE-ihZhh1mCkLYDwqV-^U&Atebxhw@?HK|C53w)v=
zZRYMsci7;u5B<S^JbGqPJnMMhPS9`URpx%Ef3?y=Bij7+q?_$s6gW@ah?zK^dR#e?
zCSa1USU2EDv8*Oe(XYDqDqWjwMLg!P5#gN8y#k2x(QO}#2A$ts-hsBtc;g&@S$snW
z>BV10*ShaOjF?6s@Qr9yd;@rTNgK^|awEeqhHz&>RAZNeKX!wO-R3>`x2u7~bUskD
z)2ynh%?TAnAbGdm_ULsynq{2osy(z<VAbd{)+mHh=>e5P$i^8dIuTArVPoA<k&suk
zTuisGJk*_9m1lsi10y(#S>OCDBB}NsL#s8W=gdKJVYN^6wWOf$I%+z4bF~_{d2_+Z
zLg2Mu*1hr1es@6#0fvT5Y<W*I@=u_32{VLA@M*(U{Sx~uI*i`N^+|Se>J;JBDq$J9
z3s{qf^zX>i-Q!|)D!z+e9&fs|X?yh9;V{sD;}@R5dD!Y=b18OAB3<eSZwJT-ESubz
zFF%$ZgiRw*0~DB4k@B;Sc5{R>{8|aKf$DodAauf*fy~Ti1yUi8RuK##AC}3v;L1H(
zibk2)scGa7RaYGTPH^<PJ8_AojcQB2Zd&<$Jo~Ida;(nEl@J}O|DHh5bWd;t|8Op-
z(@gRFfW`-Icq<uzb@PkX+wj@pKV&bp-{F<>pDIed?~?77#jZEOQc@9Cn#TiNbO3?Q
z!(Wu75cHnVi9KQ*5%KWP+~P^rswi`xueW>&OF@r!jq7G}v%7K`dTMNTV|namWMZQD
zxOPTn1iZMV6iE;FLJ|+|$3+?tUtM(rukC|5zlPKPn{~5uu0M^U+>GDTrS4?};yId8
z0$pn0CeJ6{avu!I$Y2DcELD?OPq7lKQU;rjV4-9^FFJbFOZevQ6Z>oT+uXRfMa80s
zBr9|-!`W)et-~dQ>wV*Tzmx6@g13pqrRTj7wZDll##qQQV>im(ZpZ3splrfXlG3$Y
z3a?(-l{fQFR51!TJs*b$rOI8iSLJo`nATz@3F4QMzDWgOZ~}!u*eL64x~$;wBpM5j
z&v%nVENwNygF&%pvZk<9tazAjHrkQ%E~UFU(4YH<+smAk%D++kOqc;nG-3~D`^JwM
z0EwL6rdA(I#(BdgQCnm35l@-G#oaD4_2mniQ6JvePcMB=T~xetJPAv@p@kIrmSb)f
zu=iKBZa3%lE03)kXt(UfZ@1>Gre<_wWpcclfbeREbvDVvqzWg!E~n;z4V@-s9#0$E
zFF#WMsZN2TppwD<0QjQUk%!&(AXw2+1k(ITFN5w*vPHigdXk99lRo-=jpV`mN-w1(
zY5_yc$nB?guog<Z9*QASj;h@bmRVAJ6`yFwhd$kyzd~pP9X#3;%U|~L4gtnri#gte
zfhgaN$UJ$v7Lg`1IW~9I<;-5ScH&i~ecnc@bi1o(DB46t&NlrA&MVg6vMt_y6f(t<
z2;7Z8j?v-!{?;9-NvTW%{JfFBlkUT*H!@g_5Y>jB44hK;>3p}UqM6sCJs=<?B)-2K
zfkPfYly=)am}KPEMlrS1Ia|z*jbb!Sf6&oB$3k56{FkWc_*m3eDCHU@b&9?<?U))j
zfj=ejd@*T}I~v;l@gK&|>B|{+i_Y*8h0WKMZ4>>p&G~|Z2P{lqTmYJKvC)EiT1ewh
zremz^a^<qv0)gY0qEJz-FzOVb$-sM9gkZ&O!Or;lgKND5$8Si>Q4?2-oz9!zwv+aJ
zk;~Zy){r_H8cdAU_RmtND!=Phrsq38mTrnSv%h&Ed#2GIXciKHZqJ~f^dbaT?=~*u
zyy-$aLGc38+I)PvwU18l4naK*5(7%4Ayc9jlO2SHaRlt+pVssaK-R6jg)})I^z2|o
zwkEvC<9q!4Z#pU_JK{cXkeY1<^OKNrB=hfeD#YEC8j6@LH~Z81FgYj5<&ZcmOxq8q
zUL+W1)7HcP)`YxKQ)L8ynQ;1yP*;0ZMxs1dhIy`w^-I)M7Lq#e!MqjmTk_~RMY!7{
zb14cU%_?25(pGCk;$dv-CN9J4s7fkORy)oK$X?{bibqGeo6$;V4f_aifu1k%jDFg2
z5J`Tr)u}}YcBqAlO*#hcfJ`zAlmLoZ<@WcRD+)&4N{iQ(*fDO3L|bWNW1q*=ZB>t8
zx~Hvqy#xGOy3peTT)GJ7am)SWzQirxEJPhhAl_Ut!K``b?mH)+U&uskW9>}+UL@zn
z&UM~3?l{PcQFj2sux!`;#^%!x2av`Jh}RWMMkxgkGTxciPOw|d>EF^is+5vxCjT==
z?!>Q8&-$ib4vMMzplCMIPLDIyjFjlfjKif3|K(9Y3ZfgN8ow$`#E??e&_*07u(SZ%
zn6!Gwip4)w1Nllh0E2z3^3E?cBbm;%uS*wWrFw9G&q8k)-(V2;s{2XcS##Qtc{feC
zNylg}Lo;%!s@4oHSAh0}^bqm%p_(dg1Gx!!6dwn#0BBn-1T$#^G;Vw2dEF_3-A30y
z1BZc#_n-Gn9s4=Y=!if9z6Cz1>Tl<Hu!L{|ZN5-Pf+#Qi)rtb;n+v^&scy2&Y^Ido
zkt<lEjbPy1*9H`rF=UtA6|=FGu(558$+vmIiu%C$kL%qsJ0r*S?o~M%HD>Jr_>OHY
zHO2kVuRpNs)m4~js5*&)1IXj)NI<`8V1u81iIS^Kug5OfE3IvMn3lX#aETdQ@jXl-
zCaJ8fdft~yJ%*p94!Xr0=XgJ@bpTE``z>JXg*X~Jg_uF6SqtxVswK`$zM-m6`~W?(
z)zN*%-XE&0(Mgk(b`;yFN1N-c3O7N^!LR$qjuJBVPBiVbc|`t)E{~Iijs4*)P~Cgg
z?7`W<zrCHZ(sVIRv+=LUfm#j)7O?UGlq9Xw2seJeGifbnDaxVw43!|+hXFR2J0Kvw
z1g4GTh-B$Z%nTHqnsNWzd<Lq>GH(05a)0#g@up(dPTBq8T17q*8yhEfSgKtE1&-=|
z9RW)*!MkkFMyIfEe;5o5LN!v#N?9L!kX1-VinC&#)3{Kb!q8;Pd}t4TgPrG5?ABgv
z&3j>z8jC&?AK&VE)W9bHL%8!$AZEj%#dQg4lVRkfVD2H}gY+D$(tMaMm4#5c5FweC
z!|D?Hu$b);uod~`otSh0se(a<j9{9xvdqqKRsHLQ2InrZ<G)AX3t^H&w*VLJs759V
z>uZo1b<7wmX_2!)k-n^ic=g||NoVHXv%Pa0mkFt>QDn~psaxH~aQY7>F#;Gm1hmbz
zSD$;>VP~fUe65Ju@`~nwbQ#qVmLL^ID8qvCGx_$l*q5SfYnDriSqkz#)rG|Vk(BA*
zu+w4GBp|5+5ltL|_siU&NW8Gfgt6z1+@SX;cINqzCINCI;j3jY^JA@x^@xa);_>co
zDa03K>%T>@e*}@zbfnI0P)+NYW}C&}@69%`?4;hCto0S9h5ma-bT!*@fSZa+Mq8HQ
zGWe^P^PBpxjBrdqJ}v*o!E`#I*>aK<!l1g#Ili!CDCNbA7qMF8vN~JBMleYUN0u;i
zjgKokFD$GKvsSbAzZbsHcqQ;%d2h@Ve;ma16({-@`JI1=Lm{Wf>hD+Y;dO(lb30)y
zAJ*ebeoanC0Szo@ENQu(c$@!%7z#jYg=V2NsYqHg5e^{#Mjf)|zyO7_poWpGYK$r6
zk903EOZ<O|(}5JNV#QT1PiMhyeq<7j@~_50S78>qa=uoUTiHb#@?z|2_#y|v<kR5P
z+0j}%_XJh=Dr9l$=$j{R*1c?&hy%|*r58O(f_^n(d^Bj$ra@ClSZsV$?uR&}<Q0uq
zW(iGT@1utGd3`3=(L5}l#Lt0PF1&|6synY|Gv=^WA%u6~qF~cqkylAf??^}Z>4HQ@
zkeA+#=MUw}6ngQ+E+Jl-E`RiVP+*z*oglUizAZB-SavgL-yWJ@(gJcCB^qKjZUp-L
z(eW{IJJ^45QVX{|x~jrllw-c!`1er)+sFmFq(=I~-J!E)puT?+aeVC5bo_8$Fe;ww
zqRi$#Ki34Gc)J*)-c$Ycb5>e(T~wI0&zXxeze}#=I7l=PgXIufp^@qAtIyY&>k%m@
zSCQcw?^Op~souI;aFh=yFiKoCvLQHsLuw;<e2_z=t32PJEv)H(9feNyW?$>s_ubJx
z64MYKf6<q^Ju$}gvF`z2T*BGVb<)oQItdy*jD61Lu8*S<yf+xGeU}&*oO7TybcQ>6
zG-<JHgEn%CO@HV`0nSekKRnHeHri`8l*3f3bKQrE9lf4yO>;<@YurAR&UHX2zhl8Q
z=^M)!D2)maK>5G508M%e4r?|)XTMiY#5Q_}Y1X6eQ=7jt@L$`k`tcS7le<Kp_c*9(
z3c=?vZsbS2>s;~C!90Oo?_gw}hVr=;|ICpORKwHJ5O_0R*^)_;h3KVr(Ui&z6MwD)
zt}HbjDLTCDu-)^&<hU}aQIfa`(G~V8U`7y)^^lI5C<d_pt6U*Vzg!F^PZ#iVs~C~^
zIv8GEW+29CQ1@j~nBUMY(zZbI@PjPg+p^)XPb}HmWb}`?qI8iinH(ze;+0&Z{pluK
z=GD6B_JtTHgI*}Fe)egtTn~@U7;ZTAtR1(q<pK49g8p!gsWlf-yteF<RDyH?ZE@w<
zQPr6~(HUF+t$;=)eOul}UtJ6G*YxdYy`3AXhne4A{WVXUM=~5YQ-4eF$$ICu)z}bp
zIj(30y4n33E#WqZx^g+O#}7L*D4HMRl?=`m#XNLe<L(j?w$N-duivjl0Y*+bT>rqb
zw+y*|k2Foe*bW?z3Yh=XjHX?>4kR!<a@`a=#-um8ou3KV&B09Cb$gSwoi&zDpuHaU
z>9@8IT`h&QE<&Gg{CW({X4a9fltAj76)obF^&mg}G@B7cEiLnibXgptembJaN!k2)
z?Tg>7!50YRQ-{pVeO8tmHYG#~=MfD}r9{E#TtQ4T2zK)x4(%^!c`M}fk4E&pbbx$X
zQrLmHObJk6eP)>;vW$t9j=D|L%vii^G?`IkR%j?`ZNWO1;j#PD-=3v38RO(Hj@tdM
z2Da(~^8SDjG&wX~_gi(sn7wqJ${EP<dbY|g6#srW+K)PA^Cc$0Hz0V;No@^u`Cb#t
zT8T}H(0-<4oICql2i819t?XM>0Xo<H#`@`VLTKte&>6zCFdpT`=H2=%oJL~h9mJ3R
zlvlJJxv!|gjoMa`=`a(?)BeVN^!tboGNv{fMTuS+3t`oT<3DHOzJQ{!gawD963o-m
zx~nuo5KwgtiP|@XzUh6fUGF~3>1rdESqpwdw2mecJrL%#Tok8$w$mx5VR$98mGyu_
zT#AZYM03OcMe-~_<X5cdPEfJyGj|R}<WB^-o-r1@04UiFkaKa)w=SJT$+w;<n=AAI
zEN;Zha;}tae#|7G=K{xIj##wg7@2qX<CUv1D>zt2giF4!dRzI2)evCygqMy50r^H0
z+DA$~twO!!3Q{P*P%Ba4bZ}4+L~1B*?((+qRI-ky@g*t9{u?aSqBAN?=3mlR1_Q6!
z2k_LF+(wsci|NwmI>r!HjScsGwTk9yo6$@GM)?nw%j26PxxZ5p>_#rthA^g75vCY5
z#^}bO-D~|JnE(t+l@gDtfE~+AEC2q4u-5k@6C5*{uWNB6_>#aSb%&@t$3atjxHLni
ze@BkI@P@=(d<xwNHOP_ty1ApQYo)YUxEi%z#V*}UVMHv#qJ_=ImcG*Y9M&EMe7(zf
zyi0hve<AAj>!V-3dGJi#%Sj5oJA4jknym@k9y{BkIK00wO@0bLq~%}(o4Gv@=+kOZ
zg~z9QpH}z9`BbAMA>FjpLp3cpK$Jd#IXD<Yb<WR0lmd;h7c_)AEX{u^ZPV+vax!rC
zE5F-pbZMKs66~+kNDlQ3zhR8JnyK&=fHm$@qgCYAA+99u_c9WUX_uw<M{>8*5`5Yk
zknotAGs%}Eh?!&1j#XuoTawTDb3HV#f7usYe3q`Az)qJJT-LM;yFXwQZ9TT?@28rt
zmC-hjafKAWFSaP$ZLk_>KetG}!MVNWj@2*HV8N+bZD(YdziQCpQ~EY-`kJr5BZt_X
z{z9I*3SQn6)$rgc-@f1Geo`s4Vkl}E&VR*6?@|_?{1-=}6F<1|C!nd2m{qKO#@~f(
zbrcknongNSl*Z`k^2bHaNzuLGgSal`9lo@3BRnejr_E{FaBC0io|hfXOR+zwtTZ=O
zC3kb976i?E-WukplOx|JNlkWmJtnkKJ9pwm1$;e-Q*odG{mGXnc<o;G-8zTx??!Q&
zm{b7E9|*PRUv=W`stD1jAf?@9vKNFa`O|rncAIK*fdMT3J;+fwT0vTG7W0&;7wa2B
zdUtho39r>&kKnq_SPLm+Jy7#s<y~f1nNi@xiw45V>c$xmxU|gxN2;b?(m+{UWaQ&9
zV!=`-kV?Zqa>3?iHSG1SKtP}+iT34Ck)J8Ps0->ll*;mXFMWO2sgH?>w0xZG<B(u6
z`(%W8z8AQ2*zi?*+H^Iuh8R*+>JR0K<UnqdM-p~d@Y(3J!EBcGP}57;2yOt-Kb?8~
zb=l+KvhCP?<=Dt|%5TM0$2=6DmmG({)gxxK`K;aCgWnZF)(;hA;yDfKe8WUpdkvjV
zXHsE*X*aSt3w^;74nBu?P6C4rXzQ?Ri9d4HAOM~&NR@TEph*Ksr*-T{z?MmYf;4$m
z-lRo7>(QQ-+hw)Om17G3ioxWIQ#o>b@%8VjaL~R?9`g6px(6I?f0jOOP2CihiR3Cf
zS`Z$h%73b!HRnM^fmT_EsBj9j=_^?-oCMLALmS~WtQpmxRHkSiMBZ%WUiduOlucTx
z>#>18$WJWl5NA^1Jgf1#Kvgo`be`M!V_&`!Kme9IKr>KWGSaw{er=V0-N#yRrH!K^
zD~5S!O;oNcMV9{E?gw~ZzQm*B6Ku>^c$7XYw&0gaiJPyR05dAK5ykMg86?Se4IYBL
zF`mP+_lMHfR%_#hs}(_6loNh7!EvTea$>xJkE9J(e4X0&*TLl4zHq5)*i_V)LQh!H
zvk0=5lQPGtb09z)w%DY<*Z86h+fULdtz4ynNyY}sgVBIaSlU{IcO?sstK-dF!9LK;
zil!2vCle<@thJ=8pEi$G)6G#DV4+e2nf=qvJ0x3|`h+{^QiQ*Lc>|>QJrD3uqc>X=
zq5T4O!w=UZ62colUKOOpM<LK&Q+u&a(b>fH1tbV<+QQoDq)YIF)x@*jrCY+3v4BMI
z-GQ&U>Y;4Z@ZfZz8-2VPVQx2iSDeBK56xy>KUBE-)m@SozSyTdIdU2xpVzQ5qgc=b
zP|ZL3-S3wjdl%F>8cUHaVP&^=%&Y6d=aHE;RJ@o4PMN+qb`V3Ol#+bnqks%E2lmjn
z`qz@RHL}0QJ*PNPZPLHzbJTr0c-&&{hrX<qyH8r1skKU<b8Qdkmy2);SLiO*;&W`d
zD0B4ly07YCIK%(f<@=nVRO<wn3q2rU$4M#wxA{-;fnIbiuVN41^A>6B-Py@v8iC_X
z2@N@Bze&!Z_-CR(wLTAcfWcrmqsTCs4&pr21<cEst70rjWTJXe0J>V0PZ8u0xm<)g
zpyhk9jd}_ctzrqDo?^z?4LP+=_u`ZqDOqny{W_4^;uGO3x^3@ziUr~hw$2SgM7Vq7
z;a2%?*jDbZM_7O+{%*0a+f@F~AFt%EL-5Wj{xD3mwoG^M`OhcVP^l0?tl9@y%#_4k
zRriucDLpjLVq#hFRI1q)@Q?b4WQ9fs4Qe$$N0{leRObPRM0jwx@)&9Sc#|l0d{F&K
zul!`M-b8B7zJ91_Eksi;*!o>(maUS;P(VV(%ek6ALgoU|`cCxuELNk<X&B4@zO9oD
zw6BQ#Fg?Ykyr9Ic)|7o$Z>^rA^M{m}K}+pqn&xXM=%kCetKbYa#j*&5_S0p1>_wU%
ze55-<y|pNg`17|Fp?2+S1-(8fGTW+B*XXj7Do7|qpiAkY+RrH5T2oU9lX#Av(Q<R^
zz^c3YLki#`*j*CCzQ5E1_{KAci<R>MUOfPe+X3BNwy6m6Z<2&o52dJFU5^+yTyMM7
zJ8(0T<f=bQq8Us6`m^9<o~S>USgHE#SMW|CdF<`x6vlWZGckvzX{~u;VA!V+31X#H
z`aT0OpPTJ0nVz@js`alFox;^$yH_kbDHhx5oO2a^p8O!gB3V?&VpzGlCD34-j?EUz
zG%mO`qA9=ni#B;g`vFB;EJURDedt9Jtvg)|A;Wj&RaR9-$KAQJ+Kh+uN^)arV9E_z
z1BHiWijd0f+=$U_p9%tTL_;ej8VZUr^&Z7?V<gB=Lxg}I)(Sn4`B8;CaH2!srHd+M
zfh7qJ3W;P_o^{#waF^l0MuKo?I{n(ew!BHpStqYP?IIQe#%EuJ(jCP{#OgHKFWBfn
zE)ZHe_R0JTG`PLgFVx>Md2y3gItBnuCm&NfAZN0ZRaky<YPLIZU)d|?dBAKPM<XO-
zdOpuSiIoM*&n>jvDhe%fZwa;S0Yttca-Y^)E**dY0R(MlG?trKOShRQCSN+7H8+E6
zD@-ds8gyoRz^R2B)j5?W^pz-=Nc9!cJTd*JqD=MC$oxLWq}8jclh=8dt?K<~o&lPM
z!t)eWt_~d|?Ch2pr|&xn*veZF_iW{}Aj=PupTtOIo@+_H_8QF#Yfk<No~qQTIb6;5
zfPuAIeoN3P&_Ghx<65$482<sXz`zF(%$627JDv=dm=m<<T}*LIe@Izzng25;&f6Cf
zasu>hv7`w3`5rX{%(}sE;5u*2U?uvpnT;${O;Q#4CX5vvrsE(@p^msIaQe%rAtYSv
zTHBsFnocMg^?lOk?(pjD7?^e5Yutmq>BFQHhntWy#Szj@I=|-o?IAkI7rEj>%zMQW
zzc*$9y6)*~W$w~K35-CUBueIb6wR(`&qv8+x*)QK|B><f2#H>rByfCY8kYZ(s4&W6
zzW#9og#g@k+-jtluuanPP|>Pi=X>uZv={@MpJFJ~AJPblEih6_Cg@E_(a=nid0zH~
zE~bFQx?7{Vz!y1>bB2fbIIn{ngKD-n*dZJFusonnPl4(^6OoicpQ6N7dq|dybEJC0
z)__XG=1*F#)<lO-U^)MVicE3sRY5lEkHMbCa+)cfx9Dm@tZ@}Vt_H!uS*I!b{&^ym
z_D`x-CP9qnXxbF4P4Wx%^^5ZoLIz+HGfv<;ii)Fx$+O*h>n46SxE{f^EaK_1iUd*3
zVFwAvS@q)~Z0iJ|t$3cua$bg;yR;^Np`ipVWnd+gpsvO`OHIGSHe<@-OJQ{1D$!PI
z-U5uBy5?YErJRmia-r>eAq9?E`CLo#&xCTQX|6*{dEL2EKTEbi#*;>gL1S~Unqwq|
z6h1yt0X61scC%HKdfuI6IW~_4{c$z;Q@M{pS1P(+Is#0wfT&9!N2#J)OHP+%?i8xx
zV;VJ%BSx`}t^`KQW@W2cvN`bpyS0f__4|mF8dIFc)-EYX+)Q#u4l3-}TVJo|YW}>n
zI~GUl*SrzWAtEn;iGFu~Od3Jv<KBtqg@IcMLVJd$vOkqemagd6v&m!aZ9c{^X|W5B
z(kbEwvvs%1$_3Qt1+9Iir5zeiAuA3#mQ;(-BMR%<Uh90kj5nCxYIS&(+gYp?SKeIR
zBk>SB+{*Nx12Wdi{e69ZnHcp_MAohNW#jNBTP25eN+5>O5441G$=N#d#OVkhWR+d*
z($UYQOoc~`99?HR#!KcW>%>+goTU{b0(C~_8*mKTLc>3w`vhikfq}gS?xW3tU$k3D
zxge%5C;Q3OMnZwf3Er?j8!b;i7>G+VrT?y)Yys$!g2^R}_Aa<=#y<X83t56R@^k!L
z+8)VpzuwxyA<uW2jRYOO4aLkdFz$b6WFYyjpj>Il-*;%L&in~bkuI!?EA&_L_dFPj
zo#%Jp(ry<A*U>K=7kN!2C)N!$A>xQ030hz_=H89x<_Lcax;UZ_L<V{%oAHkrpH}(%
zEo3&Xj~fF6R{wlVz=k0K5*t(={mod0O3clB8&<+1{%{pjzvA#AH_&AD@lGWn`t1!c
z7)+zZ3u9UwRJ&l%1d3s~UJDWo`{5}N>|tj^30dC4ETQS7<_8C`d~>01&xu?dKd9YU
z0e?Ap0gSLdHIGWV+KdBg#H^*EV!k(fU2NsLcb#+&Vr!^SIBFP>PbT4!%4Z4I+W`U)
z%t|cGQEXK-$^ISpFHex4XpI(~ZZ32>S^-9nV~FefMD_O0FBF&Zd{|7&c_;p8{<j@8
z&I|FQ`E2-t&b#s;oK5|3fw4C5=)-IG{$UNW^zcMMfBlk#KChVVu)>2dLlXRsCz!{d
zOx$DKIhv8;qlWjl{>o5FhOQ@?ziU2MpQ;%Vq)%@F*yKey^-e1m932lPdRp(8xE-1B
zR#FK$MKN7)&QNiTUIf~vf7f0$OiL<t!*!0SIzPt#+MY9Ur9Xtj0iq8wRzGdGDJY{B
zfNjpzh}kbC+ifmX7ziEB+pRS1m$&%bhG;{0lVmxSgk9xZl94GYteK<HqNTKH?#aD)
zDYsR#<xofRPBcz%1db!p#p#-^w;5Nw&t_RN!1?MTa;=4po(C5*Bad5LFK!T8#rbLf
zoOw>6BAo#}{5{1uPp(&6N>R^!)U#&64ZglM^GYNClkgp!_z@o3PpwlyqNAg;<i4@+
zbtMh9y!4QNL73;ke~N(Q>cJ_-COyP_mjNum84YB?Z49Obg;qQSM8|c?pS;euIt7g^
zOx5hH_@3tw6ete~oOX-3QM-<a!!Fz-$1XQ*jDHp&?=HEMC28{8yNp0BpOjx)c7h$W
z*(obX4YH<pvH8I2!@6?UuQN^Uv3V}yJU=!0N4^zE*LgO>J8mfXGOfpuoNO3WVHW3<
z>~*k2=FX=Di(qczFT$O@k7riHMcEI<yB&!31Kp3w-)^7&Z1z_XuLUfPotf&6|Ct7P
zOb_8)Mj!uw*yGBt2cH~?O~f)=NQ!zY?wh#0Z`s;%259d$*($)PVlx94hGs^s4v?K_
z-~`1Cl|%$cEzQZ?6c~McAxp=<jRnf@dvY*#Ogim3r|4Y2iTm?d^Um|`KHr>22BN2(
zhf4f%T-YW$>jWlv4pf>l$JV^2p5llbi8oC~0t^GH4)luOpmXG>?EO(VldikizwE*j
zGW1+><s3T#CKs*cD|t1!*6bR7U&>(3!_A9I|F=yuf$FZr+zB<Za1kA1Qa;C%%D-eP
zQ~}&S)Jy}y0(gnPj=mdBpk-QApJgBNR@!GA1G&do<K-i=`Si`f1DkZ6FaHyKWJEB_
zw^$b366MvlLR;*bPQKJWVrf(~w3_4A+v<{vs7U98-)s|m(7s3;bygC*mCNAv4w*2s
zv#2ls1sGy(?Ko{AXBM_JIX4MSmqaam#8~Ns9hW|Bg}Z5d!-??o2?XX>qc)&&K^T^b
zFoGF>fCcP2V=}--EE08ff!LDpFQ+?wzUz;U1LUEw(Ov^V52w=kJ{Qq6<s6}fqQ_*i
zg1<<pM(w$u*}cH*PnKkDQf;FuU%{_}Y?X;R;oHIPJKC(_?EfCFzO}_!h39B*9G@K-
za(tUrs@^_f<nJ2wB?xd__>`HeSS3>Co_B^}@t-xsJ}}4iF~x<s%+qSY`ba{A;%yi+
zjY0^sm1~%iETgNQR4SC{100xZ#G3ssU0dWpH~++No$}kx;i^<3Ar-NUhJd;JD~)%-
z8K!1W)+B>V-X5nX1i-F9>;OM48U0Fq5BD$8*O8ys@rv_*ycNz`EP&CYx>jRPoL6i0
z{Q3KI16n|Oo&DU|w`D<HH++%Xz_DpqX|ux8et{OW(;#=khBSl#|4pq7S-Kod7eRsZ
z^!o3SgS#B|tuGDK$g>os4>URT)``SjD^#mYG=qozDf`pM8^Fvt`LtPD7-$6BD4ktT
za2CqV+o-CM=;e3IPb*&Tg6XRy$p6D*)qhs^y3dCO2MU+fHtg(uzuJjgi-(@c7dO1D
z_9CiGl$q=aVxh5(!O5Hx?y85mb5&R(chP>I>OGu4{Sv&~V{A7^VE{@z8Xc`w-<aZ*
zHOex?_E`{xq0WPFfeMx9@j}cxPm3HQ4{J_F*nsl<7>YmZ_k46$?vabQ0bTr3^cKXY
z$n1CzU*%XWPhVqB0y3}aK)MxK7g`$d0}Hr)AF%~zbcR85vh6YFRfVk2{i<G#VRozn
z6Mzm(nmKT{&*+@zy3!aQ3qR{G45OA%#SsHyij%NzNzRW`B4Dw$Z#p6XsY1WxC{o9R
z)0+!4Sd#h*dxJ8p`@-}?iLyV5<vMG^CnHs1x{nlMPhZvP{Znwlq`O$yoUG5N61*^!
zVSLg>%=vXi!|35*FbNh)=&r%~ihmV6;X0r2@EXn1-rOkwP_a|IqLhCV>6FP|cl|-`
z&*_8etyH2j?z&E<9evJHimG|J(n6x~Fe}}dLFE<%HYo}_t3T3^)O(V9{yeGMb=ctj
zT9D)=p+V1rBiC$Y`&JY%eQcTA_7^xW6H+KS;qFUfeXX|*L-nwYp{l^m34XdK*&%=W
zbje<vP=3gx{o{af{KLrOpT&|^pq>Y~>1P6Ni{*Aqe!S;Cb|MDuVC5&EdP^)8NgiOB
zOfTp6=yePD@SYd<`{8WkhYMasB*~bv1xddKp~xB(g0$wr=1$!a62Yd4GL)h(3LudT
z?P7<Z5jO9WZp6xc`R7?84a_RvoAWaBf4YLRvO9KKk+kGpiNxq9GUQ)}U*zMpKZWvG
zP$MO&AGtnF8iIoHhF{ZiCIwvfst>9MGS!o1mB0OFhLwB|rxs00Pg2aL+*W+Tr8?wa
zbhfin*mUlH4eEzast3wj1ebsvcWxjVQ>4syxiwTZ`4AgkV6`SfMzPax8l%C?9+yi|
z<cpsDtW(6yx~cI>--d)g`aPMMJ<bGwx@fxr^!?HNmQ#_YTz7IwIqwj1huAiijK(6x
z|G;-j$h=#a(DLV-yq&Vv!#Wo|%DaZW_4uY7=VZn>T=OTin`aP=yxwI@U@Lu`8*$Uo
z!m7Ep9DidA9aDH~OVgO*SsMG}$zW`9Mt?KjLc7-R+?rHG@@`6NIw}XkKRln}E*nmg
zjrylinak7gwBlgYy-JY9K%@}%k~9(YFY4RbhpmgW=b|!%w7KL~6i<5Gi5Z*o5!J*_
z=@L&B^+cf&Cw<gI7)|YM2v7Udn<X$u$gcJO)=!%_ijj7-iWNHd7FBPJ50{ug2SAD9
z9p<iYY3UE~hV`#)&T3+>-6wO;Tnhaf5`Azt@B!Du{X8H`#(acTx9x3ZYue6036OxJ
zX~d!=5&;Tqc>gm$o2F5%Us8lu0GGpUXZBP{1i<Re-IlMsKd70V_X}*dob&_a`kYKK
z9}7?|Tw?mdVxsQussh(^u>{)}Q=n(d*_?wFhMA&PUrlVw#M{Ye%|o6fDLUK1#(rL)
z9C@#mu#=9X&RS+)fXpx)S2QJ<7ocAh_{?=KegK!*@#!tl<62h(W}UI!4qj(GZ9(}D
zf{sK`U)#7@0cQ$Qv=SzOmOj}6#U04~<Mv=?GYFxxl<r5{z*DpuoLDL}@FT6eGDp2<
zz2`qH{6V;?<RnG-eSQ7BVdvjN?&*|Hpv!!<Y<IRtyn<NS0oD=&*fZDiG@wr&fUf*V
z>7^fV<Gl*Mr7Z?VzlSs3Se#gk-{JAIT5o=`940dVw+>XzvafCh_&lKlBTX%5!=}zV
zZ|In7;j4Y`;Z9EGAI{?3a5s>j1WtuaPt|q{N#F~WIDH=-jKjgEA*%?|;dCF5vY~xi
zZ&}sG-^u)aTi%qYamS4%PIJ||R{6bO_^jW!?~3lekBb|Gq5+Q;GKVo<aQ=hR_wp#J
zEe%m(>}t@uXtvDi^i$N7R8U*^9}S?0rst^L-4`=P`|eIo$IEd?E%g)sBCAy9vnt5a
zh#Sc_1o+gzDgQ|hFUxSs__NeaVGgyQI#7$V5i3u$$KQ<H&7jZzaquDVNxFQ&!D2gu
zeZseVVvdW#h{p%VN4cIOM$7-)Qs*q(>wK2SN?BDO=KhdKZhX+_+cHZ~V`tq-{+v{T
zO#0t{`bM?-p?9*<biw!5U`@o8eEd?y`=Cmec_Jt!nO3vl13E$VFc0T{illOX(&N~4
z{jn#GP0*g|aa=L~v4iCdT#Sz5c47`hA5T7=;)ShR-x1Ji)KlMfcvbR+t8LM>6WtS}
z{m<~6;KA_LI3(-ow`vFmPz|ms>}QOc08R@C=hpQDs|x7ZeUe)oek)%uQDx#+cK09u
z35;R1r?Kr0=COa&$fl*X=9Jd2l)~J6$16%v;+#+3nO(tPyIi%(Q}qO+Da>vuM9t9&
zI~-mIRW3l5zni7`d_2+PENIwkuj$zczq=?9EVDc<)|mPH92-Qh0RbGua5>#AHjuCQ
zT*e-^9p|a9J-5!bDQk=YGn-ePv2z)iw3|bpe*HyvbynEFP%Jp8;^vn|F^h^@vswa&
zf%3zEaqHPxhK~57ci+)cZyk=7l8=6?x<tWrFEQ{I`2Q_C*94D3+OKg%CT)mcOO6Cz
zF2w%uYA2&@H{Kx1?|f`{f7%9(K!N7BOk5F*`)_7qj3?DJmYylF&K*9>{gqS>(J^$@
zDxXoY;FSTMl<n){7nt9j{BbZ&po_jjGFF*AP?%M{%ESB<Lkt<W6Uv$UD+`pkeK_g$
z?`x{dI6}v$$bG+zc`>i2+EP58qXd|OQ3H?_iP`Jt%Y?#{_gtvL?A|lSJs+bnk_L?s
zOJB9pp_^>39R|GQ_HalNL|y=JeL9QxTmDf@uMed%llI-NyvQ}*b4!DIT0X1c!2wRO
z(^&a%K?hlF2oNY1OicF5<fps&FzaWt&UV<HJqd6@?q_{Z)|{B_M~`nnR8n4eb$}sZ
z{gEFVwvPd1P1Fd)bEiadJ@T<Y{E;lZd|2QY^7AFqw}``i7_0+sQ;_B+ncc-b=#PGZ
zGASMK()ENdX?%+=IL8+W2~9&mR!Vaq!tKENBXu!>L~~U$wKATx3NtQa4&R*!c1}di
z3qE5H#GF;9q>YV@y?xoC=7jWejQY-uH#cr4_h5TA6gtUib<k%4Op`dxNEAp4#2{D(
zitGKuuseY(_#*+j+&Pu+N%iKy1&N?<;z_{Qzz<JO1GjTi;t44J_v8Oc<A0Um|1Vn@
zd~~e9w?G2^(60?vHrT=*K4JXLI7GUtp+WMiLs=bhL%N&8|0c2U3~nWc^uPc7e}sVZ
XE+VO+i{cCSlk^nilx54MO#=Q8K`G0O

literal 48589
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

diff --git a/tests/testdata/control_images/effects/expected_painteffect_dropshadow/expected_painteffect_dropshadow.png b/tests/testdata/control_images/effects/expected_painteffect_dropshadow/expected_painteffect_dropshadow.png
index c4eabd3be9253939c2177597551f12c40cf18297..a45f9c67de1719695dd11ce34e795ce830734ef9 100644
GIT binary patch
delta 4967
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

delta 4187
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

diff --git a/tests/testdata/control_images/effects/expected_painteffect_outerglow/expected_painteffect_outerglow.png b/tests/testdata/control_images/effects/expected_painteffect_outerglow/expected_painteffect_outerglow.png
index 65f970c1586940e107c87a066ba0be4c052cf04a..c3396b3e134e26b337e361c2125952418c847f03 100644
GIT binary patch
delta 2444
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
KPDHLk0$_r{631Hr

delta 1738
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

diff --git a/tests/testdata/control_images/effects/expected_painteffect_stack/expected_painteffect_stack.png b/tests/testdata/control_images/effects/expected_painteffect_stack/expected_painteffect_stack.png
index a5c6b6978fab04c5924f702f4c8b3c65b596c161..d223cfbf1773cd736837b4b9a674eb893d57f50d 100644
GIT binary patch
delta 5413
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
P00000NkvXXu0mjfB-NYA

delta 6051
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

diff --git a/tests/testdata/control_images/expected_pal_placement/sp_label_curved_zero_width_char/sp_label_curved_zero_width_char.png b/tests/testdata/control_images/expected_pal_placement/sp_label_curved_zero_width_char/sp_label_curved_zero_width_char.png
index 555b8a814e1a2404bb8c5eda78d8b2cbf1e094bb..7537a97469253c2bbd51b7407b0bab85761888df 100644
GIT binary patch
literal 8529
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
Uv}Rcd1Y7`8lvR^KNtu25UmF@0>;M1&

literal 8497
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
RFkm7Gu4SlMrEx#%e*m|g03iSX

diff --git a/tests/testdata/control_images/labelingengine/expected_label_adjacent_parts/expected_label_adjacent_parts.png b/tests/testdata/control_images/labelingengine/expected_label_adjacent_parts/expected_label_adjacent_parts.png
new file mode 100644
index 0000000000000000000000000000000000000000..6dadd1dc8ab6efb20372f00d02818fc26e381683
GIT binary patch
literal 2115
zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1Qgk|*?TjP;w<opEM{QfI|9OtQ?>b|
z85r2Vdb&7<RLpsM!?5tRgM{0~Qn!>VZH@&q8X0Fc7Pd6rI&jlnVd|Pa(np_v`G4;E
z-I;sOSh6#GsNZ{)nc;ybrvU>Civ$A`6AuF;BU?iQ1G9re1EYe%0R{nq1O^U{QR&fO
zAtyOBE|p`bd2E&!|2X^mPpfOccgXKxx0u6lSie;E`rYlfZ}7!1{b7l}FfgesVI@1m
z{oBXF{2A&lq@Ih+XK0xIm|JQz6O3m5AzJ8dxWe49|AASa|GonG@6OW>L~<Au^nCxg
z?{}H>?MCkhA~lW!Q>=qZfj@%%A8*v|?)!Q`wSa57W%^!5hPXcc3@X+wAY10#KK`TP
z*`MMXxvebcTpJqGV~>~Kf0%637t5snXrS`8&R2#9cdl*BOTJxO{YJuK;^{e??=djw
h9~U>Fw9@^@C{d)`Ym&Wc1F%)V;OXk;vd$@?2>@mSZhim&

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_curved_label_above_1/expected_label_curved_label_above_1.png b/tests/testdata/control_images/labelingengine/expected_label_curved_label_above_1/expected_label_curved_label_above_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..c50a2687330cb831a8b01f09cfbcea72cfac5f39
GIT binary patch
literal 6701
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_curved_label_below_1/expected_label_curved_label_below_1.png b/tests/testdata/control_images/labelingengine/expected_label_curved_label_below_1/expected_label_curved_label_below_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..6421cf8527d6a1bdb5c0400281b8679ab7475df6
GIT binary patch
literal 6612
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_curved_label_small_segments/expected_label_curved_label_small_segments.png b/tests/testdata/control_images/labelingengine/expected_label_curved_label_small_segments/expected_label_curved_label_small_segments.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2d06b1b21cf7142bb724ac657906f6962f93e0f
GIT binary patch
literal 2860
zcmeHJ`%hDM6#w2^+LaCz5uB*A2%=6JYOJw1+gb#N$YV?=MV_4~7#NgM(@|*P%AABO
zlPFPEfm;?9F_8j_8(_g+Ruvu4%VVHLD0LgXyaeQ;P-t*>|HWeX;hXc#dFSMlb3R3p
z5y8%^O)LO_bI8%4;{d=20FZ?VQ=0n?p$(L9%shHZ4#1j+|2^oM@0!g3u*@Mr0bgd9
zzZ!1+G4AYU<mCtRN6zf1f<hGxdUO`u&9Wx!SjLHq;~2dgFj<}tdlg8~Vfspe`|Y0W
z{KpMEIetJMZ!$FmFQ=B|q6hL5RrbYi0MfT~Hvxb+FNlF4fF>3rkf$dGTwJ7p$=m}R
z95w<Nb^_3<d37xB3mmX_6Z9>;9m?ir+t+A%#){yOMsWaSR-dG2Cnt2>)+wIy0Fjgq
zJ!luEqv}#}F0~dl_DzN>8J1fE>n+d7rIm-~nbg|68=C3Cv>b+|p3+wB71A=JVHK#e
z_LnK;l3&7cpgM*WPq&RLlQS6Sl#C`9c#F<R#?$VNdq}lZ$XfEH&Q_c7=)$YLLOh>#
zPe9{5$$?cDGUim1AU%iSp8~gJ%dA~mexw?OjB2njy?g8n>Kj9q2?;1pZKqP#S|^rm
zdGa~|ZR)fSl=n|k{eYyqYS1pxtNF3d9#GzjJ6C~Rq|l%#R*j8#)Y4>9@n<go%0YPE
zSoxn(=!o%!jCfJjrKRRTl$Fgn)f55wXQH&6JQ1F+8Idv0C1%h%yfDt=D74Wyba26m
z({T)L`J-K0p$|@Id8;r#sAw#V=}Za7ajS_<7LI!`wcD{NBFpdH%067*$>p;L!*Fce
zarSO}L_qO`yqZuqdsL2kJTC_AZu9ox8$=m2IPWwSjIcukxI<g}NIPHL!He4qMMYj7
zs}&@!?Y^1PbS8~C>#YfN+^HbdGQAw<HP{yG(^8#(Xt)FnMHSZAl33C{Y5$a`F`sWd
zIT;(@)!!+os9x3*OI_ENKh}*IN_BH@XGd#Q$!J%@detp=sb9~M@!-^)PxrD?|F_IM
zF~FB3{Qj~dUYWa?B@yxRjhbAxPRIRxmT$2PNFpu0HQO+@HL&$!==rGPw)?wAI{9y0
z5n6O0Vk+L|>bV{J@Mb0G@WFiO^rmRozKg}e@&+<D_sYl@lgd_GiMHeJbo0jefK%7?
z#0;Bg&vC~fDka&SgiJpr_2kT*0f)xd>a|V3T?Heu83FE%#$Yj@?8<ccXq{zQxC7^0
zDS!zv!k(3)d`)z6j>wrljQ7Xc^ldg5OK|h^aZ^(L?!+z$)s?};;+->lc2gN`zNk7S
zaJx7Z30-hoY6~^Exk-B*7Q=*#qi;);$0?i&P{8f=#)ZE7#1V+(T&WyqjQM1lp@ATT
z+cQnOx1W8z0OmXVl&*{0q!5Y|rKr1`zZ+!b)mVN;S*&tL$SPIfWQlSv&n%lB7UC>c
z&38cVwLsVkZC}aBI$N5Y47*7TQRTRh|3=8lX({`5VQRROd`7-8_wg{Bi*$o!MZo=Q
zh=*-}l3$A^d+XJvEfhv>G57d3UL&;OeZ0tZQoq5i{HS54?wv+*S^4gCLirpQ4)(z^
zs}1Ib@)7Z<SE|1+?35eRJ?~V$4Z2hn-FCu&RJlr-Qx$|Zx3bQ0Kj#WCn3S{MUyT*D
z_D}fnXDWvbR$mTxf&xa1P}S^vNX-@H*`w<q;Abp-0|Sez<NLDsRuB9tvH718Iy?Kx
X$#S%BaOVb!{(_Jr5ka+wr3L>2W}-nH

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_curved_negative_distance/expected_label_curved_negative_distance.png b/tests/testdata/control_images/labelingengine/expected_label_curved_negative_distance/expected_label_curved_negative_distance.png
new file mode 100644
index 0000000000000000000000000000000000000000..144725a46cbb8973459319f804993953125c7149
GIT binary patch
literal 2950
zcmeHJ`BPI@7`-nbpg<CrK_F406)m!hK#&li;DBRUs$vijGNpi4Hbs_52u}qp%2J&{
zQWAoWtqh~G7)t`OyeSom0a6-eUt(hj7z9~T2#}<&{n5XHAMV`w?m2V6xo6Hd_Y{T(
z2bgZN+y($JJrU@C3IGfY03<cSpeN1zlYDgBni_a64FK%#|1GG@7E1uYn0&(D_e>V|
z<G6DPA<hbU=iX1-R}pl}pA+bNl=O{3;m%ZejDB$@vk5XCLkwYKl6}sF(EUkR{61j^
zE8ki)l1Qxks1nC|hm;k%a0EXrizb))dLD5&90<$~%C12m^|rn_z+g-O1R20E(DU(u
zArc7zcsv~#894#{O?Xq5O*?!(2GT4HliH`W21xVX@v*TtmxhYxJ2M3=g*vN^xvE@E
zFBL&>n3m>9FOM!Mx23j*U0@iHuAYISlhS$Kd#YG2ZRd!uT>$Pw9;W5DSHe}sM$6wg
zHV+zl_QlpuYI2O1H2I<mr(-g;S1IR-Ea$dx?Q;2o$j{yw?ml)8D9-L$8(6jz0~2WC
zW@)l%w&#R{0osDR9Yf6ah>k81;f{|io1{K1Ie?^ea_YJURfjWDDhW?&yHxyz#34%q
zC!2sBQpr*A(kr2mFUd&OBOZaM5swpKzk^7F=rY5@!JVr4HfrN2YeecVaq&3`3x19B
z#Yrk~D(?JbqpJyB57VN?GoG6<+R}85m7_pOE&$%kvGu}oRZQVRMvI2UY~QG%=vB+i
zF+F*93iXvJmTOyt_RX>h7Yj|nW6Jz{x?){)(e68bksa{G?ev4O9^(0!CP5m3Z3aDV
zSQ?kDRPc0rbS%%d^Qc<&xm|c^Yz|g_oim`J2^N{o4)=AvY~FQ^X93__ti;%lUAo4i
z@^l{BD3d=M3n0#R=_!@D-JD!Q(NS43vy+W!grOpk5*HEEv522@^%5^JU2CWGUQjx0
zJXL_OpAnilr4}rVGGRBb4jT>=_A<CL(>%Y7vO3L0nckD#wa)CkZbS3OaT<}?yh5$Y
z(j>R6PxEw<a^B0mgRw>G(L?U_S!wc`O6qu-pgJT|9$Tc4sae|Hwg{JNU*}2G=IcBS
zmBZ|u=|}0z>E5z{+_kH;2_8x>b&f8k5vsBsOIMZ#5p3mb*?Okze5*b^L7$Dh!`(Gh
z@)ypbrTalEsk<zwHShG#4?tuE6CUpAX5BGPCFzr8&f%bX)*M42@YPtc*OIFpAaFL4
z0&|PJr`pL@3Q>Ema^zEG<X@(D!5Q?L{I@GXxnGJSCx~0um&L1!u7%jvZFKjNL&%e)
z`w9<6JT0mbm<3y-C08-b?p}I9)Wp`qHF#-hWTnEY6DPV=*QJ#EF(y1{bJt}gWHdt4
zCw$AG1{M5KoO6U)Qx0Z}fcMj+MP|K(e<QeGCH$usBJP45!X*5Z%g_}JQ+QUPW^x_d
zT||9Js0pMsBU7D+0Sa(YK(z47jKu?Mq<VUOVdZv+*ZucSy`8heS!e4oLl)3fV=1dC
z$E{CmncIu2exA0DPi)E_bBiY*!SrapUTZk8_vRKN7K$$)XlnT0*(c@41ou!Vzz-g-
zdc?Hro}gHSe6R*D4<N+b>5CiRQGWX0*X(0Zyd`xl{2ux$18fyYGZ{e1!{lt&=x&!(
zBYn0^(0jV$y+sxY(^C`aEl!Xny2XpCP<uK<1!36tZKzJI=8hRE3G7Eg>YG$4Pn#`i
zAzczVgihq4VEElb;k-q-FZ}Rw9Ys9ejLE6Sm8~aopEWtrz4gtp{U0cGsh3W#JeOyN
zP7H2fYj;v|nr%};s^(s=%=Gv62DKUhvPY?M3qWjkY<|+4*<~}ceU??P>-3nQ5}{N}
R3eaE;P8<*Rul<UC<6kd#XO92?

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_multipart_touching_branches/expected_label_multipart_touching_branches.png b/tests/testdata/control_images/labelingengine/expected_label_multipart_touching_branches/expected_label_multipart_touching_branches.png
new file mode 100644
index 0000000000000000000000000000000000000000..05319f20735e92a77779538f6d0059290d18eb6a
GIT binary patch
literal 2939
zcmeHJ=~I(;5dOVMI1)}_6c7XvtF<6R8LkpQ5egJJ>H%mqiLDYUhp9S1AcPmOI(RXo
zMGXmW(mFtE5U3~+An+<x1_=p;qJ}7k2q6TG7$8IfG<@m5(CG{xc6VlXXZM+%XJ((G
z_}B;w!g>M#z#=L#Y##s^7yxM46l2IV)kW7C0-hdu=nMdsf36r*;%?~(fZ6t_u-yl;
zx$j=@$T&c=gGX#<5|w*z8R76>_SzP$Jq}HQff@hHk(nqa(k0wAZ{pnX1nX@v2`DA$
z{#Q?(In&vL>_F-MA03LvZ*X2HBw6ak$-c@sESP#;m;(X&6`Vc5V9Wso8N)EZ?%D-I
z8#kiB+L{VXO^E=vT3$WN|A!9C0=wE6sX{k7GRkPlneWoymyZGT;kvcMY{m|+>f9&<
zdg&5v_F;YM0Lk0XC*uZ{Mkp?RG)F~;V_}M<Yqsd9I!(eV<yGhQ&zPf`+qa_H$)`%)
zC{v%=8Wh6Z8J9p=WUyL0N+9}eT(%ime7P?`<k@?xg2phW;<8OLxCm|hJNPCIc5_Al
z(2yv8yEq7R^JD<DM09E8s3#Am$<iwn?0})R^i+EkIur{R_k<%9sY<#(UEzxc+YT3M
zbI241RHAgC^6+%^+1NP6*$$VJImRjY59>A?i4q%Db{G&HV<qMFKPSTSq)1qu?O3If
zyg6OoPnlJ6gUc!fH3LEmx}zDMxG*}`rxEJ|msuf06sKq2bQ11%S<}yoXzT-}gTFII
z?5z7$sp}-^zF%sz=cij>EiZ#JM9(o@ub(zE1AFm=D@1;qUOP9mp&|cNmUiAQMp~?x
zZf4MOj6)6MIRVJKA)Z3_u0=F|r+dbH3IQ(lquVA#pL&&y<Rxy1)FkEGcDUP=p2qN-
zPD0!@dX+w>HD4}Cr+Q<UiG-ZDt!EW;x)4cQ!A+WfGG@xdQ#;W_YAb7qQ~a)UxF)l~
zFgq6FA74Al^^s9?Sbpl{aT%$3rakl0qeq8A;bR?{8c}-*V=0}*VN1Q5nh&Vl%erM^
zQfUO|o<iSQ!VzitL##&kQ!9?g?$BhL<o`_|cBC+d0$+`9?%^=bbn#kxOX8|Y7aCmN
zKa;OG+IWpFbyPbzSh#^{oc8)7f#AgX3^(7-{OuO~%G{)HQp6ZXS3$<q8bzBDIXl8I
z=W+A!w$ITKo8jwywICuIR)_6|UW#oz_k7A@<p+2rE-QNLt9&?rl|31&)q5}N{X?D$
zKs^-?A)E~CgDukK?tJaTEsdAzwxGhFaM_}(8d6qcDimGLM-!aF;TO%(NI+O?7MLpl
zL)1Kk(k;+xmfn0&>vCrg_GyB?>FMTnvxgj~tf1B#vsPDfeQFY{yvB5Vp+&-&O4nq7
zx&gy1&R`;{Ngx_k%B=A{Hp9K8p*1{&A~rKJ@=w9ERA!Kbi*#o)iP$AchYQ_MlOOVs
zQ?G>gdO!d~=FbK;(8kAFNNii|%%f=$)}six+>uj0RdvfxEcnrP!@{%}#A|@LbE{gh
zxQ48);-mGZM9T0}`SmL2_cWyJiP7A7Q0LRow!O2H+rst})C>ko2?UQqQ0JB<Onr&$
zl?pFvY7JO@Fk*6J9^xWtzgkIy7hO>&xcP|ILyEF&sFs6vLGh=P6HHPV#$RB>kB>gn
zl<(>Dj$cE)Heg_<g3)Tv&*CclGzOl?$F^d$U&AAZ<)ZfiZABfO-19ukBb(6LUo1SU
z?pDyKR(Rqovll^F6`qLmm1xRS`BJ>E(<bPGs4iH_ThQ+lsE&{dPh$newWPcM(j#kJ
z5XTGdPX+KD4WA5vliTV8T@?<ig6Y51kp;`xC>i(q#B9NUK~00G@Yt~GQ0lpV0J?H=
A2><{9

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_multipart_touching_lines/expected_label_multipart_touching_lines.png b/tests/testdata/control_images/labelingengine/expected_label_multipart_touching_lines/expected_label_multipart_touching_lines.png
new file mode 100644
index 0000000000000000000000000000000000000000..d60f3febb2f8e8cf256e477e50370b497b83ee14
GIT binary patch
literal 2761
zcmeHJYfMuI6h3XQ2#j`2oZ@4x%UqfXzQ!hKDWI?bGx0GWAV>?VvWZO43bf_XizcEW
zvu1A8rnQ}Jj%{odgHS4rUdJLhpm)<%U|1-yQn4V#jy}Al?D~7Z_h;e9$;tUnPEO9r
zmwexaJ-d?W!7GCSfS#I?^Z@`B1)x|0sU&i{ac3i$f(la(2>}?tya>t{5sXy;!KJB5
z+xLr9Q|9;+`_oooBl5>}_xIlaI%&uC^Xaf8qKn#JSvLts!v^j|qIBe5*2=V$l%a&r
z*JWkYhL;Df=+P*0Duj3OeFHVdN4n8k;k3TztWv3@z(sqN1fWHRgaeft0u)LBiUKVm
z0i~>2gF$F$HUtK40%W1R@Rt8O9aNd9#`vIG|7|Ux8%2de;Xb@@({kZVzPh(3cT1G>
zh&q4XPxyEj7Xi!5=VB!@r+5_}d$oA8Bm{eFYaJMrC4;Xy)|1tDWF@`PDk<A4$8CBh
ztq^f<#&m7dGj{P@zIuQ~0=6(qwZ5gP$^0o{g4K7th-kNV+*IHk?3DHipuNf&<j7(-
zFuI)rV2qYgRSsV`Y7TU~uIJOSv~8Dx^#pmCGqD*;wqAzmiTbegs#yh-Z?q1IiJumO
z<+Lgll?kc#4Xv|82h*VLb9I9IR|O(ErkT_+X{u;S++H<{rqT%m9mmwzwjb~|X>1gU
zMA}wU+iJ&DB;@A$1%A;xvS#j(#ITdO>L?mk%%JdQ$i?O&nx*{8ffbfNREenEl|{_m
z+hn-1yiYhc?c+qn<2a{ma`te%x|6f})eZcTXT{#zmv!BJSIZ`>r94UQP>-^_M#`n|
z`g6Ak-7fcrjW%oUmiXS?QlqAo%aOjTb%`G{|2;@dKRM|uycJQ-c8?&-!1j@synU(K
z@^tL?*zc1edwKU_kGbt7?U0MmdXH<Yqx8^>IBaKT`8*vnBBC5AKCG6~BJ-wzQ@IGc
z{*d8N*R<2x6ul=3W=>4`7)xOB&0=)g859XM&Bdtvn_+M(K>I{eZ%zzI@B5k3Zeuqz
z&nuk9HYDV?j2NsmV~*jFIR#uQv}O|B;q~Kre(6$sSL=w0peGz3f#K)8!D@ZK|I*){
z%!z1>t1Cnc4&Ck?&ciGCc$1HI%gDxbkLsAT22~^7v0f+fomTtbHXQCXUFTNBylj63
z`n$`69P0~gQ&olvyFW&HhQNJ|_^G*oF7pEzKJ^!25*sL8K@PUc;~eYFXX0bU0pMDT
z@m(inEMrHJhGbhX;!#?OF}CxFMqBx3&$u@>-VzIw38=fs_kuK9r~OX+GE}g{LL)wu
zUB#%`h^Lg}aSEa@QH*DSW!nBUjbt}IK46TBRj@hQMV38C%dJG2JC^+8g-}b_XBusQ
z<zvKi+H4wA4D{p@XV=jp-$&&q>pC-82fcGYPT>2+QOaoNc*g-)i-<nq^Q||t0%G2z
zmYs_`WL4;|RJ)VE)Q;!b@Zt8<rqO3b>;k!#BW^7--;?v&Z8v0Ib=M2Y`YI~~`k!B8
q0z7?VL97-;dcmChr=G2H9t4%=?j|3+mQH$8NPTZtQvHtXGyede@)Gm_

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_label_rotate_with_reproject/expected_label_rotate_with_reproject.png b/tests/testdata/control_images/labelingengine/expected_label_rotate_with_reproject/expected_label_rotate_with_reproject.png
new file mode 100644
index 0000000000000000000000000000000000000000..7a615c3aed586c74d8368a2c7aaaddd5926a4315
GIT binary patch
literal 2110
zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1Qgk|*?TjP;w<opEM{QfI|9OtQ?>b|
z85r0<c)B=-RLpsM<6z+<2NBnc$CjpSDP`+x=Hc*=oY1$8Z~0v2jAu#~>Gxyv%UAzP
zJ!i?#@c;E{IR=LL9u15N3I`Yj1QHlHI1CtASR@#jn0Oc%8QB^d7?>R#Mx_U9utdCK
zEXdnlSpBIzH>X{P@tkYJL(Tn<zgw;2x4(b9?t#PumpKatCT<S|@i$!F-T(V={`HM=
zJ6J3xo}RP$9s`5?aZahx#5J0!s9)9q6WoK^JICIhl;5^db`#5kubc+%zvS-o@88@1
zyV08=ZjP|Yz?5vjJi2G<?;Y2L8O}X4dcMY-;lT02CTf+e8?G={_}f2zKJ)qOi0vC?
zP1zo>avJ<URT?8-x4ZxE0aXV569bjubiOj&yKHr>_RUwWhU=v>i?2yDJa}y3I9i`j
dr<(o8px3B0{c9BiJFr2(;OXk;vd$@?2>_?-Z&v^S

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/labelingengine/expected_parallel_prefer_above/expected_parallel_prefer_above.png b/tests/testdata/control_images/labelingengine/expected_parallel_prefer_above/expected_parallel_prefer_above.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e6a7d1920943e01febf8e7d900cc05e6605d1a1
GIT binary patch
literal 2175
zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1Qgk|*?TjP;w<opEM{QfI|9OtQ?>b|
z85lSWJzX3_D(1Ysd$9Lb0E6pA`@mU=*0MgbB@dcjG+1dg7oBLjsG=>>-<h9tF0z)B
zd+*(;6Laq6ZNJUHaP8}2IR=LH9u15N3I`Yj1QHlHI1CtASR@#jn0Oc%8QB^d7?>R#
zMx{rCWtb<21Lvz4Y>t~O`~A?w@2yb7e#HZCj{mNZPp;|dXTL6U?BT)Xk9gO(HQelc
zz2hEpjm+`<`pydG)q)8>eD^e7<uI^muVCKHVesXMble1n!`nK|bEYsHel3*G!D;Y8
z_7N{Pr@@A8=|_JX>7Ad!%*)8O?TPli=Y@IG4>;Xp<pt)mH2!6Vx<5mO6KYYiU88T+
zpB)B&{$tILZw{8myyj&1jGSTrv-9MfubiX*IB0!?>m5ccS$D?S*~dy`j#sfBu#t04
z;y?Ge#$Lm4gDBIPXLFCed~MVF^5E3|cuC!R2WGL%i2Z4Nthm#BgBoL-|D(N%?S(7U
z4+Jss_$%By5W~b{__6J}%7G1uk9cpZ9{8~6h;$Sa&l$CQ8|E-Dul`m3u`Rc9_uag&
tYz!5a5I>HVC8I^`Xw@<Zs?-PKWq-mWGv=DC2DT^|JYD@<);T3K0RUiRm<|8{

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/qgis_server/WMS_GetMap_Filter6/WMS_GetMap_Filter6.png b/tests/testdata/control_images/qgis_server/WMS_GetMap_Filter6/WMS_GetMap_Filter6.png
new file mode 100644
index 0000000000000000000000000000000000000000..164a35467b165c14d3c6cd27ae37f53dd2077662
GIT binary patch
literal 2831
zcmeHJ{ZCV86ut}{Lxh=h4waRfu;C)6PP9xYts*cqYH?!&r9fc{sDK4lJ_@Bpof2fw
zIpP2Xj5C822Fef$()P-SAQY%l5rJMn`>D`E3vDm<YqxX%!G7h3larkDzUMqS=XsyJ
z#V1H%t{b*(006-C$l;Lh0Kj3zZXbPsL_!`Mh7jkRe)!Z+NPgLF4!bP`D*$ZhJ`xi2
zeQvcH60&dTw?4}F<V195U&5wuQBdXCu+Zn{-(D%X`UZ@D-~vTnP8+MlnjIw#X|e6z
z>V^_ObzQ)hnVhzrJqPDgV^oI@`fs0ez33df?@e8m!^-eehG{jGC88_-63~|wHO81s
z!@}fx;6Y4Y3kU$cJ2XJhYqw3Guer4mtg&G2A^cA*D8U-s0T}e#vay|XjK@{h@XO1K
z*o?g1AG|P(OxpO6&tgXbG%~M|1QLn9zB<<zadthr!-@h%&)KY&-F&zNO*N}8;)H&s
z*l6Zt&vl`D8TQn^{d9$DLcD`?oa#|MlQGv?YJ^NLQRM#qe(c%K4#${v;Z%C&TZmix
zP<xHs9OG+}3A`u-o3(-~$r81S_~};DV|08RIxu~%NP6pbXVw|Z%|Dekj=D&YYrxzV
z1h(iK#v4V+aS{iGD0zTgN}XEjGTpOk{%~Q|%9q7r_Cg>$RTg`+;@*Dc{rW^eG1%?s
z)c<uF+}ocb2%2=?b@Dz<+jD@B3k7?4!ZIma<i9Y4j<1zu3twU|Jk6~emIFjQ&ayNb
z+_l3vLR270VxZ-Dxk%EkBmZ8|eQCWAONLu-MVZa@<RlC#r_i6vvROG0wF!K8?M~`6
zZDec^1oz-@IN>iHj>DZ5ag0|SkD>?z%QRSelw}brleTWkDeS~;*_h4KD*SIJgWFT0
zn96Z<R~Z`bCoV)TH8r77^Ao!~-c9Kznk#eVH>ya;SS}n_L;Q^KC5o&qgZ3<cQ9uxL
z?1u^YMl6Mwu1bm8C7_99vSanH-M-?wVOD7}-K&8D+Td%pQ&>{KW~6Brvf;Z&ud>KV
zw85VFs1evNKEtV!Y+ri1Zuseh8;Qiqg;nn>L^kns$Tov1`LOKG_+6jme@nD!4AbG&
z+nADY27!M;J@p=10Tqg!{;<ACkUf2U@9CVG|DcUXrFb`n-%1;v7|=pzFzO=g?Yz9a
zJQllhbWbXRC7sDja=1?K6FCewq7mFm&-@>SE{iN&-xU#Plb=3Nt8N1AafCzt0+z@S
zOxc(?o#F&`NS%xjO?<p{82-Y$kp8!(oy-CgM#iYdotLEbbr>j1Rl{c%JI}Ftg(xxx
zqA!uL^fRW56<k5~=$<GIu&i804Pc^ekEn}a-ejUX!@@K_Utwo^G72Ur_fEE(t9zU6
zG#iuqSk1b=Ui`;t_}m2JECmlgzT4$yk&mY-BMj>iY@+69ex6Y#C`frhuqs{+dMTMd
zCyC}72WCGrFW<z^Om<P_Diz(jnVSe;%Qzg)toiL~({xTVnEkl!S*XyR67cYhR`uJJ
z%jM#t@LD4C{5ySj6&h3Xl9yqThNo6pCM#{;8o*uLa(ci!jxOit%+BofU)9b%(KmiW
z3}n#ss-diui86?8RA{xQtP$rvMHE6-i$C~lhvT~9HMcebI}4tIKqa2cI|MJdAU|B-
NNGK_!`B40&e*oA8v?Txl

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/qgis_server/WMS_GetPrint_Basic_Pdf/WMS_GetPrint_Basic_Pdf.png b/tests/testdata/control_images/qgis_server/WMS_GetPrint_Basic_Pdf/WMS_GetPrint_Basic_Pdf.png
new file mode 100644
index 0000000000000000000000000000000000000000..10c23f0d8ea82f1423bcdaecbb48ecfd74c689fb
GIT binary patch
literal 262127
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
b6Mr#YTf^WsvF#?gU>PaJV^9A+bL0O2D(F!0

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/qgis_server/WMS_GetPrint_Basic_Pdf/WMS_GetPrint_Basic_Pdf_mask.png b/tests/testdata/control_images/qgis_server/WMS_GetPrint_Basic_Pdf/WMS_GetPrint_Basic_Pdf_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..37a8e472cde2232ba8a562b74025981127866aac
GIT binary patch
literal 53038
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/qgis_server/WMS_GetPrint_Selection_Pdf/WMS_GetPrint_Selection_Pdf.png b/tests/testdata/control_images/qgis_server/WMS_GetPrint_Selection_Pdf/WMS_GetPrint_Selection_Pdf.png
new file mode 100644
index 0000000000000000000000000000000000000000..e13ebf39fff892092e6e55132f44bd19c400ba83
GIT binary patch
literal 301478
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/qgis_server/WMS_GetPrint_Selection_Pdf/WMS_GetPrint_Selection_Pdf_mask.png b/tests/testdata/control_images/qgis_server/WMS_GetPrint_Selection_Pdf/WMS_GetPrint_Selection_Pdf_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..dab52d6367ed829c1c6beb6fe2eafd2df6dd3ee3
GIT binary patch
literal 396418
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%0AU
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
P8)S&5tDnm{r-UW|CnYfO

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/default/expected_inverted_polys_curved.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/expected_inverted_polys_curved.png
similarity index 100%
rename from tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/default/expected_inverted_polys_curved.png
rename to tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/expected_inverted_polys_curved.png
diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/precise/expected_inverted_polys_curved.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_curved/precise/expected_inverted_polys_curved.png
deleted file mode 100644
index 3cc7263ea6ac36767d27397aa229158b878a993e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 641536
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

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_graduated/expected_inverted_polys_graduated_mask.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_graduated/expected_inverted_polys_graduated_mask.png
index 6d00d4bad2293bcd9d465baa90a61de2c40f0253..43a3a411d45c546a47ea0a9b0141242c351886d6 100644
GIT binary patch
literal 48719
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
H9{qm+^PeId

literal 48333
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

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/default/expected_inverted_polys_preprocess.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/expected_inverted_polys_preprocess.png
similarity index 100%
rename from tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/default/expected_inverted_polys_preprocess.png
rename to tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/expected_inverted_polys_preprocess.png
diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/expected_inverted_polys_preprocess_mask.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/expected_inverted_polys_preprocess_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..e6b417a6fb16e9ee7a4c92a31a3a89693019b4ce
GIT binary patch
literal 21576
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/precise/expected_inverted_polys_preprocess.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_preprocess/precise/expected_inverted_polys_preprocess.png
deleted file mode 100644
index 2f8a909b1b415c4618432ceea7797a3cf7501f5e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 25224
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
OC|_ihrK=^4ga03ZRdr4P

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/default/expected_inverted_polys_projection.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/expected_inverted_polys_projection.png
similarity index 100%
rename from tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/default/expected_inverted_polys_projection.png
rename to tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/expected_inverted_polys_projection.png
diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/expected_inverted_polys_projection_mask.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/expected_inverted_polys_projection_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..243ae3e1088d585f6df174585f61abd78c0cf3ea
GIT binary patch
literal 18581
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/precise/expected_inverted_polys_projection.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection/precise/expected_inverted_polys_projection.png
deleted file mode 100644
index 99879aa41ea6eba3aa7c229c30878c56f2db6430..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 21778
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%0AUtOg#%G;vgqE#wk5>E@
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

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/default/expected_inverted_polys_projection2.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/expected_inverted_polys_projection2.png
similarity index 100%
rename from tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/default/expected_inverted_polys_projection2.png
rename to tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/expected_inverted_polys_projection2.png
diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/expected_inverted_polys_projection2_mask.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/expected_inverted_polys_projection2_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..5193c3ff55c301662ebc305b4cf032b42b7bae9d
GIT binary patch
literal 17782
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
AQUCw|

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/precise/expected_inverted_polys_projection2.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_projection2/precise/expected_inverted_polys_projection2.png
deleted file mode 100644
index afac9cc314e116f8397877823556dd78db10a8a2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 20737
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

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_rotation/expected_inverted_polys_rotation.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_rotation/expected_inverted_polys_rotation.png
new file mode 100644
index 0000000000000000000000000000000000000000..67cdd40a34ccdaee50fd80ab6c5747bc826b2594
GIT binary patch
literal 32877
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

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/default/expected_inverted_polys_single.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/expected_inverted_polys_single.png
similarity index 100%
rename from tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/default/expected_inverted_polys_single.png
rename to tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/expected_inverted_polys_single.png
diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/expected_inverted_polys_single_mask.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/expected_inverted_polys_single_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..88a23f12decb3c90ac217a428d6e64bb533644b9
GIT binary patch
literal 22492
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
I*rC(^0)gNu`v3p{

literal 0
HcmV?d00001

diff --git a/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/precise/expected_inverted_polys_single.png b/tests/testdata/control_images/symbol_invertedpolygon/expected_inverted_polys_single/precise/expected_inverted_polys_single.png
deleted file mode 100644
index 229dad5406df7e6b6e0d2685247fc157e69f9084..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 26407
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
DuCa25

diff --git a/tests/testdata/layout_atlas_table.qgs b/tests/testdata/layout_atlas_table.qgs
new file mode 100644
index 0000000000..f4f4815642
--- /dev/null
+++ b/tests/testdata/layout_atlas_table.qgs
@@ -0,0 +1,539 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis version="3.7.0-Master" projectname="">
+  <homePath path=""/>
+  <title></title>
+  <autotransaction active="0"/>
+  <evaluateDefaultValues active="0"/>
+  <trust active="0"/>
+  <projectCrs>
+    <spatialrefsys>
+      <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+      <srsid>3452</srsid>
+      <srid>4326</srid>
+      <authid>EPSG:4326</authid>
+      <description>WGS 84</description>
+      <projectionacronym>longlat</projectionacronym>
+      <ellipsoidacronym>WGS84</ellipsoidacronym>
+      <geographicflag>true</geographicflag>
+    </spatialrefsys>
+  </projectCrs>
+  <layer-tree-group>
+    <customproperties/>
+    <layer-tree-layer providerKey="ogr" expanded="1" id="points_ce766da2_f70f_4fc6_b852_4550b40ed354" checked="Qt::Checked" name="points" source="./points.shp">
+      <customproperties/>
+    </layer-tree-layer>
+    <custom-order enabled="0">
+      <item>points_ce766da2_f70f_4fc6_b852_4550b40ed354</item>
+    </custom-order>
+  </layer-tree-group>
+  <snapping-settings mode="2" enabled="0" type="1" unit="1" intersection-snapping="0" tolerance="12">
+    <individual-layer-settings>
+      <layer-setting id="points_ce766da2_f70f_4fc6_b852_4550b40ed354" enabled="0" type="1" units="1" tolerance="12"/>
+    </individual-layer-settings>
+  </snapping-settings>
+  <relations/>
+  <mapcanvas name="theMapCanvas" annotationsVisible="1">
+    <units>degrees</units>
+    <extent>
+      <xmin>-119.77777777777767199</xmin>
+      <ymin>22.19841269841290199</ymin>
+      <xmax>-82.44444444444427234</xmax>
+      <ymax>47.4737750172535371</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+        <srsid>3452</srsid>
+        <srid>4326</srid>
+        <authid>EPSG:4326</authid>
+        <description>WGS 84</description>
+        <projectionacronym>longlat</projectionacronym>
+        <ellipsoidacronym>WGS84</ellipsoidacronym>
+        <geographicflag>true</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+    <expressionContextScope/>
+  </mapcanvas>
+  <projectModels/>
+  <legend updateDrawingOrder="true">
+    <legendlayer open="true" showFeatureCount="0" drawingOrder="-1" checked="Qt::Checked" name="points">
+      <filegroup open="true" hidden="false">
+        <legendlayerfile visible="1" isInOverview="0" layerid="points_ce766da2_f70f_4fc6_b852_4550b40ed354"/>
+      </filegroup>
+    </legendlayer>
+  </legend>
+  <mapViewDocks/>
+  <mapViewDocks3D/>
+  <projectlayers>
+    <maplayer simplifyDrawingHints="0" wkbType="Point" simplifyLocal="1" hasScaleBasedVisibilityFlag="0" type="vector" minScale="1e+08" refreshOnNotifyMessage="" styleCategories="AllStyleCategories" refreshOnNotifyEnabled="0" autoRefreshEnabled="0" simplifyAlgorithm="0" autoRefreshTime="0" simplifyMaxScale="1" simplifyDrawingTol="1" maxScale="1" readOnly="0" labelsEnabled="1" geometry="Point">
+      <extent>
+        <xmin>-118.88888888888877204</xmin>
+        <ymin>22.80020703933767834</ymin>
+        <xmax>-83.33333333333315807</xmax>
+        <ymax>46.87198067632875365</ymax>
+      </extent>
+      <id>points_ce766da2_f70f_4fc6_b852_4550b40ed354</id>
+      <datasource>./points.shp</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>points</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+          <srsid>3452</srsid>
+          <srid>4326</srid>
+          <authid>EPSG:4326</authid>
+          <description>WGS 84</description>
+          <projectionacronym>longlat</projectionacronym>
+          <ellipsoidacronym>WGS84</ellipsoidacronym>
+          <geographicflag>true</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type>dataset</type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 forceraster="0" attr="Class" enableorderby="0" symbollevels="0" type="categorizedSymbol">
+        <categories>
+          <category label="B52" value="B52" symbol="0" render="true"/>
+          <category label="Biplane" value="Biplane" symbol="1" render="true"/>
+          <category label="Jet" value="Jet" symbol="2" render="true"/>
+        </categories>
+        <symbols>
+          <symbol clip_to_extent="1" type="marker" force_rhr="0" name="0" alpha="1">
+            <layer enabled="1" pass="0" class="SvgMarker" locked="0">
+              <prop v="0" k="angle"/>
+              <prop v="0,0,0,255" k="color"/>
+              <prop v="0" k="fixedAspectRatio"/>
+              <prop v="1" k="horizontal_anchor_point"/>
+              <prop v="gpsicons/plane.svg" k="name"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="0,0,0,255" k="outline_color"/>
+              <prop v="0.2" k="outline_width"/>
+              <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="diameter" k="scale_method"/>
+              <prop v="11" k="size"/>
+              <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+              <prop v="MM" k="size_unit"/>
+              <prop v="1" k="vertical_anchor_point"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option value="" type="QString" name="name"/>
+                  <Option name="properties"/>
+                  <Option value="collection" type="QString" name="type"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+          <symbol clip_to_extent="1" type="marker" force_rhr="0" name="1" alpha="1">
+            <layer enabled="1" pass="0" class="SvgMarker" locked="0">
+              <prop v="0" k="angle"/>
+              <prop v="0,0,0,255" k="color"/>
+              <prop v="0" k="fixedAspectRatio"/>
+              <prop v="1" k="horizontal_anchor_point"/>
+              <prop v="gpsicons/plane_orange.svg" k="name"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="0,0,0,255" k="outline_color"/>
+              <prop v="0.2" k="outline_width"/>
+              <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="diameter" k="scale_method"/>
+              <prop v="18" k="size"/>
+              <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+              <prop v="MM" k="size_unit"/>
+              <prop v="1" k="vertical_anchor_point"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option value="" type="QString" name="name"/>
+                  <Option name="properties"/>
+                  <Option value="collection" type="QString" name="type"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+          <symbol clip_to_extent="1" type="marker" force_rhr="0" name="2" alpha="1">
+            <layer enabled="1" pass="0" class="SvgMarker" locked="0">
+              <prop v="0" k="angle"/>
+              <prop v="0,0,0,255" k="color"/>
+              <prop v="0" k="fixedAspectRatio"/>
+              <prop v="1" k="horizontal_anchor_point"/>
+              <prop v="gpsicons/plane.svg" k="name"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="0,0,0,255" k="outline_color"/>
+              <prop v="0.2" k="outline_width"/>
+              <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="diameter" k="scale_method"/>
+              <prop v="11" k="size"/>
+              <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+              <prop v="MM" k="size_unit"/>
+              <prop v="1" k="vertical_anchor_point"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option value="" type="QString" name="name"/>
+                  <Option name="properties"/>
+                  <Option value="collection" type="QString" name="type"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties>
+        <property key="embeddedWidgets/count" value="0"/>
+        <property key="variableNames"/>
+        <property key="variableValues"/>
+      </customproperties>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
+        <DiagramCategory scaleBasedVisibility="0" opacity="1" penColor="#000000" width="15" height="15" backgroundColor="#ffffff" minScaleDenominator="1" penAlpha="255" enabled="0" maxScaleDenominator="1e+08" minimumSize="0" sizeScale="3x:0,0,0,0,0,0" diagramOrientation="Up" backgroundAlpha="255" penWidth="0" barWidth="5" lineSizeType="MM" sizeType="MM" labelPlacementMethod="XHeight" lineSizeScale="3x:0,0,0,0,0,0" scaleDependency="Area" rotationOffset="270">
+          <fontProperties description="Noto Sans,10,-1,5,50,0,0,0,0,0" style=""/>
+          <attribute color="#000000" label="" field=""/>
+        </DiagramCategory>
+      </SingleCategoryDiagramRenderer>
+      <DiagramLayerSettings linePlacementFlags="10" dist="0" priority="0" placement="0" zIndex="0" obstacle="0" showAll="1">
+        <properties>
+          <Option type="Map">
+            <Option value="" type="QString" name="name"/>
+            <Option name="properties"/>
+            <Option value="collection" type="QString" name="type"/>
+          </Option>
+        </properties>
+      </DiagramLayerSettings>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="Class">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Heading">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Importance">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Pilots">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Cabin Crew">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Staff">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias index="0" field="Class" name=""/>
+        <alias index="1" field="Heading" name=""/>
+        <alias index="2" field="Importance" name=""/>
+        <alias index="3" field="Pilots" name=""/>
+        <alias index="4" field="Cabin Crew" name=""/>
+        <alias index="5" field="Staff" name=""/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default applyOnUpdate="0" field="Class" expression=""/>
+        <default applyOnUpdate="0" field="Heading" expression=""/>
+        <default applyOnUpdate="0" field="Importance" expression=""/>
+        <default applyOnUpdate="0" field="Pilots" expression=""/>
+        <default applyOnUpdate="0" field="Cabin Crew" expression=""/>
+        <default applyOnUpdate="0" field="Staff" expression=""/>
+      </defaults>
+      <constraints>
+        <constraint exp_strength="0" field="Class" constraints="0" notnull_strength="0" unique_strength="0"/>
+        <constraint exp_strength="0" field="Heading" constraints="0" notnull_strength="0" unique_strength="0"/>
+        <constraint exp_strength="0" field="Importance" constraints="0" notnull_strength="0" unique_strength="0"/>
+        <constraint exp_strength="0" field="Pilots" constraints="0" notnull_strength="0" unique_strength="0"/>
+        <constraint exp_strength="0" field="Cabin Crew" constraints="0" notnull_strength="0" unique_strength="0"/>
+        <constraint exp_strength="0" field="Staff" constraints="0" notnull_strength="0" unique_strength="0"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint exp="" field="Class" desc=""/>
+        <constraint exp="" field="Heading" desc=""/>
+        <constraint exp="" field="Importance" desc=""/>
+        <constraint exp="" field="Pilots" desc=""/>
+        <constraint exp="" field="Cabin Crew" desc=""/>
+        <constraint exp="" field="Staff" desc=""/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" actionWidgetStyle="dropDown" sortOrder="0">
+        <columns>
+          <column hidden="0" type="field" name="Class" width="-1"/>
+          <column hidden="0" type="field" name="Heading" width="-1"/>
+          <column hidden="0" type="field" name="Importance" width="-1"/>
+          <column hidden="0" type="field" name="Pilots" width="-1"/>
+          <column hidden="0" type="field" name="Cabin Crew" width="-1"/>
+          <column hidden="0" type="field" name="Staff" width="-1"/>
+          <column hidden="1" type="actions" width="-1"/>
+        </columns>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable/>
+      <labelOnTop/>
+      <widgets/>
+      <previewExpression>"Class"</previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+  </projectlayers>
+  <layerorder>
+    <layer id="points_ce766da2_f70f_4fc6_b852_4550b40ed354"/>
+  </layerorder>
+  <properties>
+    <Gui>
+      <CanvasColorBluePart type="int">255</CanvasColorBluePart>
+      <CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
+      <CanvasColorRedPart type="int">255</CanvasColorRedPart>
+      <SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
+      <SelectionColorBluePart type="int">0</SelectionColorBluePart>
+      <SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
+      <SelectionColorRedPart type="int">255</SelectionColorRedPart>
+    </Gui>
+    <Legend>
+      <filterByMap type="bool">false</filterByMap>
+    </Legend>
+    <Measure>
+      <Ellipsoid type="QString">WGS84</Ellipsoid>
+    </Measure>
+    <Measurement>
+      <AreaUnits type="QString">m2</AreaUnits>
+      <DistanceUnits type="QString">meters</DistanceUnits>
+    </Measurement>
+    <PAL>
+      <CandidatesLine type="int">50</CandidatesLine>
+      <CandidatesPoint type="int">16</CandidatesPoint>
+      <CandidatesPolygon type="int">30</CandidatesPolygon>
+      <DrawRectOnly type="bool">false</DrawRectOnly>
+      <SearchMethod type="int">0</SearchMethod>
+      <ShowingAllLabels type="bool">false</ShowingAllLabels>
+      <ShowingCandidates type="bool">false</ShowingCandidates>
+      <ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
+      <TextFormat type="int">0</TextFormat>
+    </PAL>
+    <Paths>
+      <Absolute type="bool">false</Absolute>
+    </Paths>
+    <PositionPrecision>
+      <Automatic type="bool">true</Automatic>
+      <DecimalPlaces type="int">2</DecimalPlaces>
+    </PositionPrecision>
+    <SpatialRefSys>
+      <ProjectionsEnabled type="int">1</ProjectionsEnabled>
+    </SpatialRefSys>
+  </properties>
+  <visibility-presets/>
+  <transformContext/>
+  <projectMetadata>
+    <identifier></identifier>
+    <parentidentifier></parentidentifier>
+    <language></language>
+    <type></type>
+    <title></title>
+    <abstract></abstract>
+    <links/>
+    <author>Nyall</author>
+    <creation>2019-05-22T07:55:49</creation>
+  </projectMetadata>
+  <Annotations/>
+  <Layouts>
+    <Layout worldFileMap="" printResolution="300" units="mm" name="Layout 1">
+      <Snapper snapToGuides="1" snapToItems="1" snapToGrid="0" tolerance="5"/>
+      <Grid offsetX="0" offsetUnits="mm" resolution="10" offsetY="0" resUnits="mm"/>
+      <PageCollection>
+        <symbol clip_to_extent="1" type="fill" force_rhr="0" name="" alpha="1">
+          <layer enabled="1" pass="0" class="SimpleFill" locked="0">
+            <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+            <prop v="255,255,255,255" k="color"/>
+            <prop v="miter" k="joinstyle"/>
+            <prop v="0,0" k="offset"/>
+            <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+            <prop v="MM" k="offset_unit"/>
+            <prop v="35,35,35,255" k="outline_color"/>
+            <prop v="no" k="outline_style"/>
+            <prop v="0.26" k="outline_width"/>
+            <prop v="MM" k="outline_width_unit"/>
+            <prop v="solid" k="style"/>
+            <data_defined_properties>
+              <Option type="Map">
+                <Option value="" type="QString" name="name"/>
+                <Option name="properties"/>
+                <Option value="collection" type="QString" name="type"/>
+              </Option>
+            </data_defined_properties>
+          </layer>
+        </symbol>
+        <LayoutItem positionOnPage="0,0,mm" opacity="1" frameJoinStyle="miter" visibility="1" positionLock="false" position="0,0,mm" type="65638" referencePoint="0" uuid="{f100fece-ec6a-4cf2-ba16-7d961ba0e0fd}" size="297,210,mm" excludeFromExports="0" outlineWidthM="0.3,mm" zValue="0" templateUuid="{f100fece-ec6a-4cf2-ba16-7d961ba0e0fd}" background="true" frame="false" id="" groupUuid="" itemRotation="0" blendMode="0">
+          <FrameColor green="0" red="0" blue="0" alpha="255"/>
+          <BackgroundColor green="255" red="255" blue="255" alpha="255"/>
+          <LayoutObject>
+            <dataDefinedProperties>
+              <Option type="Map">
+                <Option value="" type="QString" name="name"/>
+                <Option name="properties"/>
+                <Option value="collection" type="QString" name="type"/>
+              </Option>
+            </dataDefinedProperties>
+            <customproperties/>
+          </LayoutObject>
+        </LayoutItem>
+        <GuideCollection visible="1"/>
+      </PageCollection>
+      <LayoutItem positionOnPage="63.455,26.5388,mm" opacity="1" sectionY="0" frameJoinStyle="miter" hidePageIfEmpty="0" visibility="1" hideBackgroundIfEmpty="0" positionLock="false" position="63.455,26.5388,mm" multiFrameTemplateUuid="{25741952-c242-4d17-942e-21f550d35b81}" type="65647" referencePoint="0" uuid="{c213c327-3a06-4ec3-82c3-de8a8ed4ebdd}" sectionHeight="113.811" size="28.4375,113.811,mm" excludeFromExports="0" outlineWidthM="0.3,mm" zValue="1" templateUuid="{c213c327-3a06-4ec3-82c3-de8a8ed4ebdd}" background="false" sectionX="0" frame="false" id="" multiFrame="{25741952-c242-4d17-942e-21f550d35b81}" groupUuid="" sectionWidth="28.4375" itemRotation="0" blendMode="0">
+        <FrameColor green="0" red="0" blue="0" alpha="255"/>
+        <BackgroundColor green="255" red="255" blue="255" alpha="255"/>
+        <LayoutObject>
+          <dataDefinedProperties>
+            <Option type="Map">
+              <Option value="" type="QString" name="name"/>
+              <Option name="properties"/>
+              <Option value="collection" type="QString" name="type"/>
+            </Option>
+          </dataDefinedProperties>
+          <customproperties/>
+        </LayoutObject>
+      </LayoutItem>
+      <LayoutMultiFrame vectorLayerSource="/home/nyall/dev/QGIS/tests/testdata/points.shp" wrapBehavior="0" vectorLayerName="points" showUniqueRowsOnly="0" resizeMode="0" backgroundColor="255,255,255,255" type="65649" showGrid="1" uuid="{25741952-c242-4d17-942e-21f550d35b81}" headerMode="0" cellMargin="1" filterFeatures="false" gridColor="0,0,0,255" horizontalGrid="1" headerHAlignment="0" emptyTableMessage="" relationId="" vectorLayer="points_ce766da2_f70f_4fc6_b852_4550b40ed354" emptyTableMode="0" gridStrokeWidth="0.5" templateUuid="{25741952-c242-4d17-942e-21f550d35b81}" showOnlyVisibleFeatures="0" maxFeatures="30" featureFilter="" vectorLayerProvider="ogr" wrapString="" contentFontColor="0,0,0,255" verticalGrid="1" headerFontColor="0,0,0,255" showEmptyRows="0" filterToAtlasIntersection="0" source="1">
+        <childFrame templateUuid="{c213c327-3a06-4ec3-82c3-de8a8ed4ebdd}" uuid="{c213c327-3a06-4ec3-82c3-de8a8ed4ebdd}"/>
+        <LayoutObject>
+          <dataDefinedProperties>
+            <Option type="Map">
+              <Option value="" type="QString" name="name"/>
+              <Option name="properties"/>
+              <Option value="collection" type="QString" name="type"/>
+            </Option>
+          </dataDefinedProperties>
+          <customproperties/>
+        </LayoutObject>
+        <headerFontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
+        <contentFontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
+        <displayColumns>
+          <column vAlignment="128" heading="Heading" hAlignment="1" sortByRank="0" attribute="Heading" sortOrder="0" width="0">
+            <backgroundColor green="0" red="0" blue="0" alpha="0"/>
+          </column>
+          <column vAlignment="128" heading="Staff" hAlignment="1" sortByRank="0" attribute="Staff" sortOrder="0" width="0">
+            <backgroundColor green="0" red="0" blue="0" alpha="0"/>
+          </column>
+        </displayColumns>
+        <cellStyles>
+          <oddColumns cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <evenColumns cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <oddRows cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <evenRows cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <firstColumn cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <lastColumn cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <headerRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <firstRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+          <lastRow cellBackgroundColor="255,255,255,255" enabled="0"/>
+        </cellStyles>
+      </LayoutMultiFrame>
+      <customproperties>
+        <property key="atlasRasterFormat" value="png"/>
+      </customproperties>
+      <Atlas coverageLayerProvider="ogr" coverageLayerName="points" pageNameExpression="" sortFeatures="0" hideCoverage="0" enabled="1" filenamePattern="'output_'||@atlas_featurenumber" coverageLayer="points_ce766da2_f70f_4fc6_b852_4550b40ed354" coverageLayerSource="/home/nyall/dev/QGIS/tests/testdata/points.shp" filterFeatures="0"/>
+    </Layout>
+  </Layouts>
+</qgis>
diff --git a/tests/testdata/multipatch.shp b/tests/testdata/multipatch.shp
new file mode 100644
index 0000000000000000000000000000000000000000..f344278afab80d8e18f76b16557e4092f86f1865
GIT binary patch
literal 376
zcmZQzQ0HR64)(lYW?+!Vko&M7BJ{x?mBvtrEWillv=L(#6Hp-sR3{6N25AIg`~cl8
U=zRRT85l79gyu&=`bn1u0Iii3KmY&$

literal 0
HcmV?d00001

diff --git a/tests/testdata/multipatch.shx b/tests/testdata/multipatch.shx
new file mode 100644
index 0000000000000000000000000000000000000000..1b9f3104533933a60a66b65e46e33bf347f547a2
GIT binary patch
literal 108
lcmZQzQ0HR64$NLKGcd?w$bHxk5&B?{N@FNQ7BB*G+5ksC1~&iz

literal 0
HcmV?d00001

diff --git a/tests/testdata/points_gpkg.gpkg b/tests/testdata/points_gpkg.gpkg
index 102ad5ab9030b799aaa0810729902d9c7c76c6ab..6202a7913d58287fe52165fb44203d71bb9785a5 100644
GIT binary patch
delta 29
lcmZoTz|nAkV}dlJ(L@<%RwD-8k2@MuT2mOerZCNs2LPB03K0MR

delta 29
lcmZoTz|nAkV}dlJ!9*EnRs#k-nGKC8ttpIKQ<&z+0|1SF2{8Zw

diff --git a/tests/testdata/qgis_local_server/fcgi/scripts/spawn_fcgi_mac.sh b/tests/testdata/qgis_local_server/fcgi/scripts/spawn_fcgi_mac.sh
index 0d1fcce358..abd3ccf656 100755
--- a/tests/testdata/qgis_local_server/fcgi/scripts/spawn_fcgi_mac.sh
+++ b/tests/testdata/qgis_local_server/fcgi/scripts/spawn_fcgi_mac.sh
@@ -19,15 +19,15 @@ PROCESS="mapserv"
 LABEL="org.qgis.test-${PROCESS}"
 USAGE="${0} {stop|status} or {start|restart spawn_bin fcgi_socket fcgi_bin qgis_server_temp_dir}"
 
-if [ ! -z $2 ]; then
+if [[ -n $2 ]]; then
   SPAWN_BIN=$2
-  if [ ! -z $3 ]; then
+  if [[ -n $3 ]]; then
     FCGI_SOCKET=$3
   fi
-  if [ ! -z $4 ]; then
+  if [[ -n $4 ]]; then
     FCGI_BIN=$4
   fi
-  if [ ! -z $5 ]; then
+  if [[ -n $5 ]]; then
     QGIS_SERVER_TEMP_DIR=$5
   fi
 fi
diff --git a/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_debian.sh b/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_debian.sh
index 613ef6bc04..63839674c3 100755
--- a/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_debian.sh
+++ b/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_debian.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 ###########################################################################
 #    lighttpd_debian.sh
 #    ---------------------
@@ -26,7 +26,7 @@ SCRIPTNAME=$NAME
 
 export QGIS_SERVER_TEMP_DIR=$3
 
-if [ ! -z $4 ]; then
+if [[ -n $4 ]]; then
     DAEMON_OPTS="-f ${4}"
 fi
 
diff --git a/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_mac.sh b/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_mac.sh
index a047e76ec4..27cd568912 100755
--- a/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_mac.sh
+++ b/tests/testdata/qgis_local_server/lighttpd/scripts/lighttpd_mac.sh
@@ -19,12 +19,12 @@ PROCESS="lighttpd"
 LABEL="org.qgis.test-${PROCESS}"
 USAGE="${0} {stop|status} or {start|restart lighttpd-path lighttpd_conf qgis_server_temp_dir}"
 
-if [ ! -z $2 ]; then
+if [[ -n $2 ]]; then
   LIGHTTPD_BIN=$2
-  if [ ! -z $3 ]; then
+  if [[ -n $3 ]]; then
     LIGHTTPD_CONF_PATH=$3
   fi
-  if [ ! -z $4 ]; then
+  if [[ -n $4 ]]; then
     QGIS_SERVER_TEMP_DIR=$4
   fi
 fi
diff --git a/tests/testdata/qgis_server/bug_gh29767_double_vfield.qgs b/tests/testdata/qgis_server/bug_gh29767_double_vfield.qgs
new file mode 100644
index 0000000000..0a99a26440
--- /dev/null
+++ b/tests/testdata/qgis_server/bug_gh29767_double_vfield.qgs
@@ -0,0 +1,711 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis version="3.7.0-Master" projectname="QGIS Test Project">
+  <homePath path=""/>
+  <title>QGIS Test Project</title>
+  <autotransaction active="0"/>
+  <evaluateDefaultValues active="0"/>
+  <trust active="0"/>
+  <projectCrs>
+    <spatialrefsys>
+      <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+      <srsid>3452</srsid>
+      <srid>4326</srid>
+      <authid>EPSG:4326</authid>
+      <description>WGS 84</description>
+      <projectionacronym>longlat</projectionacronym>
+      <ellipsoidacronym>WGS84</ellipsoidacronym>
+      <geographicflag>true</geographicflag>
+    </spatialrefsys>
+  </projectCrs>
+  <layer-tree-group>
+    <customproperties/>
+    <layer-tree-layer source="./testlayer.shp" checked="Qt::Checked" id="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a" expanded="1" providerKey="ogr" name="testlayer">
+      <customproperties/>
+    </layer-tree-layer>
+    <custom-order enabled="0">
+      <item>testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a</item>
+    </custom-order>
+  </layer-tree-group>
+  <snapping-settings intersection-snapping="0" enabled="0" unit="2" mode="1" tolerance="0" type="2">
+    <individual-layer-settings>
+      <layer-setting id="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a" enabled="1" units="1" tolerance="12" type="1"/>
+    </individual-layer-settings>
+  </snapping-settings>
+  <relations/>
+  <mapcanvas annotationsVisible="1" name="theMapCanvas">
+    <units>degrees</units>
+    <extent>
+      <xmin>17.92123882869385909</xmin>
+      <ymin>30.1492204088525888</ymin>
+      <xmax>18.0486921925404431</xmax>
+      <ymax>30.25992437587047235</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+        <srsid>3452</srsid>
+        <srid>4326</srid>
+        <authid>EPSG:4326</authid>
+        <description>WGS 84</description>
+        <projectionacronym>longlat</projectionacronym>
+        <ellipsoidacronym>WGS84</ellipsoidacronym>
+        <geographicflag>true</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+    <expressionContextScope/>
+  </mapcanvas>
+  <legend updateDrawingOrder="true">
+    <legendlayer checked="Qt::Checked" open="true" showFeatureCount="0" drawingOrder="-1" name="testlayer">
+      <filegroup hidden="false" open="true">
+        <legendlayerfile layerid="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a" visible="1" isInOverview="0"/>
+      </filegroup>
+    </legendlayer>
+  </legend>
+  <mapViewDocks/>
+  <projectlayers>
+    <maplayer simplifyAlgorithm="0" maxScale="0" refreshOnNotifyMessage="" autoRefreshTime="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" labelsEnabled="0" geometry="Point" minScale="1e+08" styleCategories="AllStyleCategories" refreshOnNotifyEnabled="0" simplifyLocal="1" simplifyMaxScale="1" type="vector" wkbType="Point" simplifyDrawingTol="1" simplifyDrawingHints="0" readOnly="0">
+      <extent>
+        <xmin>8.20345930703634352</xmin>
+        <ymin>44.90139483904469131</ymin>
+        <xmax>8.20354699399348775</xmax>
+        <ymax>44.90148252600183554</ymax>
+      </extent>
+      <id>testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a</id>
+      <datasource>./testlayer.shp</datasource>
+      <shortname>layer_with_short_name</shortname>
+      <title>A Layer with a short name</title>
+      <abstract>A Layer with an abstract</abstract>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>testlayer</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+          <srsid>3452</srsid>
+          <srid>4326</srid>
+          <authid>EPSG:4326</authid>
+          <description>WGS 84</description>
+          <projectionacronym>longlat</projectionacronym>
+          <ellipsoidacronym>WGS84</ellipsoidacronym>
+          <geographicflag>true</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type></type>
+        <title></title>
+        <abstract></abstract>
+        <contact>
+          <name></name>
+          <organization></organization>
+          <position></position>
+          <voice></voice>
+          <fax></fax>
+          <email></email>
+          <role></role>
+        </contact>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>true</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent>
+          <spatial miny="0" dimensions="2" minx="0" minz="0" maxx="0" maxy="0" crs="" maxz="0"/>
+          <temporal>
+            <period>
+              <start></start>
+              <end></end>
+            </period>
+          </temporal>
+        </extent>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields>
+        <field expression=" &quot;id&quot; * 3.14" subType="0" length="-1" precision="0" comment="" typeName="double precision" name="virtdbl" type="6"/>
+        <field expression=" &quot;id&quot; * 2" subType="0" length="10" precision="0" comment="" typeName="integer" name="virtint" type="2"/>
+      </expressionfields>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 forceraster="0" enableorderby="0" symbollevels="0" type="singleSymbol">
+        <symbols>
+          <symbol clip_to_extent="1" alpha="1" name="0" force_rhr="0" type="marker">
+            <layer locked="0" pass="0" class="SimpleMarker" enabled="1">
+              <prop k="angle" v="0"/>
+              <prop k="color" v="152,125,183,255"/>
+              <prop k="horizontal_anchor_point" v="1"/>
+              <prop k="joinstyle" v="bevel"/>
+              <prop k="name" v="circle"/>
+              <prop k="offset" v="0,0"/>
+              <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+              <prop k="offset_unit" v="MM"/>
+              <prop k="outline_color" v="35,35,35,255"/>
+              <prop k="outline_style" v="solid"/>
+              <prop k="outline_width" v="0"/>
+              <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+              <prop k="outline_width_unit" v="MM"/>
+              <prop k="scale_method" v="diameter"/>
+              <prop k="size" v="2"/>
+              <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+              <prop k="size_unit" v="MM"/>
+              <prop k="vertical_anchor_point" v="1"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option value="" name="name" type="QString"/>
+                  <Option name="properties"/>
+                  <Option value="collection" name="type" type="QString"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties>
+        <property key="embeddedWidgets/count" value="0"/>
+        <property key="variableNames"/>
+        <property key="variableValues"/>
+      </customproperties>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
+        <DiagramCategory width="15" enabled="0" sizeType="MM" barWidth="5" penAlpha="255" opacity="1" lineSizeType="MM" penColor="#000000" backgroundAlpha="255" lineSizeScale="3x:0,0,0,0,0,0" labelPlacementMethod="XHeight" scaleDependency="Area" height="15" backgroundColor="#ffffff" sizeScale="3x:0,0,0,0,0,0" rotationOffset="270" diagramOrientation="Up" minimumSize="0" scaleBasedVisibility="0" maxScaleDenominator="1e+08" penWidth="0" minScaleDenominator="0">
+          <fontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
+          <attribute field="" label="" color="#000000"/>
+        </DiagramCategory>
+      </SingleCategoryDiagramRenderer>
+      <DiagramLayerSettings placement="0" priority="0" zIndex="0" obstacle="0" dist="0" linePlacementFlags="18" showAll="1">
+        <properties>
+          <Option type="Map">
+            <Option value="" name="name" type="QString"/>
+            <Option name="properties"/>
+            <Option value="collection" name="type" type="QString"/>
+          </Option>
+        </properties>
+      </DiagramLayerSettings>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="id">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="name">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="utf8nameè">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="virtdbl">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="virtint">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias field="id" index="0" name=""/>
+        <alias field="name" index="1" name=""/>
+        <alias field="utf8nameè" index="2" name=""/>
+        <alias field="virtdbl" index="3" name=""/>
+        <alias field="virtint" index="4" name=""/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default expression="" field="id" applyOnUpdate="0"/>
+        <default expression="" field="name" applyOnUpdate="0"/>
+        <default expression="" field="utf8nameè" applyOnUpdate="0"/>
+        <default expression="" field="virtdbl" applyOnUpdate="0"/>
+        <default expression="" field="virtint" applyOnUpdate="0"/>
+      </defaults>
+      <constraints>
+        <constraint notnull_strength="0" field="id" unique_strength="0" exp_strength="0" constraints="0"/>
+        <constraint notnull_strength="0" field="name" unique_strength="0" exp_strength="0" constraints="0"/>
+        <constraint notnull_strength="0" field="utf8nameè" unique_strength="0" exp_strength="0" constraints="0"/>
+        <constraint notnull_strength="0" field="virtdbl" unique_strength="0" exp_strength="0" constraints="0"/>
+        <constraint notnull_strength="0" field="virtint" unique_strength="0" exp_strength="0" constraints="0"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint desc="" field="id" exp=""/>
+        <constraint desc="" field="name" exp=""/>
+        <constraint desc="" field="utf8nameè" exp=""/>
+        <constraint desc="" field="virtdbl" exp=""/>
+        <constraint desc="" field="virtint" exp=""/>
+      </constraintExpressions>
+      <expressionfields>
+        <field expression=" &quot;id&quot; * 3.14" subType="0" length="-1" precision="0" comment="" typeName="double precision" name="virtdbl" type="6"/>
+        <field expression=" &quot;id&quot; * 2" subType="0" length="10" precision="0" comment="" typeName="integer" name="virtint" type="2"/>
+      </expressionfields>
+      <attributeactions>
+        <defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
+      </attributeactions>
+      <attributetableconfig sortOrder="0" actionWidgetStyle="dropDown" sortExpression="">
+        <columns>
+          <column hidden="0" width="-1" name="id" type="field"/>
+          <column hidden="0" width="-1" name="name" type="field"/>
+          <column hidden="0" width="-1" name="utf8nameè" type="field"/>
+          <column hidden="1" width="-1" type="actions"/>
+        </columns>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1">.</editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable>
+        <field editable="1" name="id"/>
+        <field editable="1" name="name"/>
+        <field editable="1" name="utf8nameè"/>
+      </editable>
+      <labelOnTop>
+        <field name="id" labelOnTop="0"/>
+        <field name="name" labelOnTop="0"/>
+        <field name="utf8nameè" labelOnTop="0"/>
+      </labelOnTop>
+      <widgets/>
+      <previewExpression>id</previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+  </projectlayers>
+  <layerorder>
+    <layer id="testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a"/>
+  </layerorder>
+  <properties>
+    <DefaultStyles>
+      <AlphaInt type="int">255</AlphaInt>
+      <ColorRamp type="QString"></ColorRamp>
+      <Fill type="QString"></Fill>
+      <Line type="QString"></Line>
+      <Marker type="QString"></Marker>
+      <Opacity type="double">1</Opacity>
+      <RandomColors type="bool">true</RandomColors>
+    </DefaultStyles>
+    <Digitizing>
+      <AvoidIntersectionsList type="QStringList"/>
+      <DefaultSnapTolerance type="double">0</DefaultSnapTolerance>
+      <DefaultSnapToleranceUnit type="int">2</DefaultSnapToleranceUnit>
+      <DefaultSnapType type="QString">off</DefaultSnapType>
+      <LayerSnapToList type="QStringList"/>
+      <LayerSnappingEnabledList type="QStringList"/>
+      <LayerSnappingList type="QStringList"/>
+      <LayerSnappingToleranceList type="QStringList"/>
+      <LayerSnappingToleranceUnitList type="QStringList"/>
+      <SnappingMode type="QString">current_layer</SnappingMode>
+    </Digitizing>
+    <Gui>
+      <CanvasColorBluePart type="int">255</CanvasColorBluePart>
+      <CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
+      <CanvasColorRedPart type="int">255</CanvasColorRedPart>
+      <SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
+      <SelectionColorBluePart type="int">0</SelectionColorBluePart>
+      <SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
+      <SelectionColorRedPart type="int">255</SelectionColorRedPart>
+    </Gui>
+    <Identify>
+      <disabledLayers type="QStringList">
+        <value>testlayer_0b835118_a5d5_4255_b5dd_f42253c0a4a0</value>
+      </disabledLayers>
+    </Identify>
+    <Legend>
+      <filterByMap type="bool">false</filterByMap>
+    </Legend>
+    <Macros>
+      <pythonCode type="QString"></pythonCode>
+    </Macros>
+    <Measure>
+      <Ellipsoid type="QString">WGS84</Ellipsoid>
+    </Measure>
+    <Measurement>
+      <AreaUnits type="QString">m2</AreaUnits>
+      <DistanceUnits type="QString">meters</DistanceUnits>
+    </Measurement>
+    <PAL>
+      <CandidatesLine type="int">50</CandidatesLine>
+      <CandidatesPoint type="int">16</CandidatesPoint>
+      <CandidatesPolygon type="int">30</CandidatesPolygon>
+      <DrawOutlineLabels type="bool">true</DrawOutlineLabels>
+      <DrawRectOnly type="bool">false</DrawRectOnly>
+      <SearchMethod type="int">0</SearchMethod>
+      <ShowingAllLabels type="bool">false</ShowingAllLabels>
+      <ShowingCandidates type="bool">false</ShowingCandidates>
+      <ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
+      <TextFormat type="int">0</TextFormat>
+    </PAL>
+    <Paths>
+      <Absolute type="bool">false</Absolute>
+    </Paths>
+    <PositionPrecision>
+      <Automatic type="bool">true</Automatic>
+      <DecimalPlaces type="int">2</DecimalPlaces>
+      <DegreeFormat type="QString">D</DegreeFormat>
+    </PositionPrecision>
+    <RequiredLayers>
+      <Layers type="QStringList"/>
+    </RequiredLayers>
+    <SpatialRefSys>
+      <ProjectCRSID type="int">3452</ProjectCRSID>
+      <ProjectCRSProj4String type="QString">+proj=longlat +datum=WGS84 +no_defs</ProjectCRSProj4String>
+      <ProjectCrs type="QString">EPSG:4326</ProjectCrs>
+      <ProjectionsEnabled type="int">1</ProjectionsEnabled>
+    </SpatialRefSys>
+    <Variables>
+      <variableNames type="QStringList"/>
+      <variableValues type="QStringList"/>
+    </Variables>
+    <WCSLayers type="QStringList"/>
+    <WCSUrl type="QString"></WCSUrl>
+    <WFSLayers type="QStringList">
+      <value>testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a</value>
+    </WFSLayers>
+    <WFSLayersPrecision>
+      <testlayer20150528120452665 type="int">8</testlayer20150528120452665>
+      <testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a type="int">8</testlayer_c0988fd7_97ca_451d_adbc_37ad6d10583a>
+    </WFSLayersPrecision>
+    <WFSTLayers>
+      <Delete type="QStringList"/>
+      <Insert type="QStringList"/>
+      <Update type="QStringList"/>
+    </WFSTLayers>
+    <WFSUrl type="QString"></WFSUrl>
+    <WMSAccessConstraints type="QString">None</WMSAccessConstraints>
+    <WMSAddWktGeometry type="bool">true</WMSAddWktGeometry>
+    <WMSContactMail type="QString">elpaso@itopen.it</WMSContactMail>
+    <WMSContactOrganization type="QString">QGIS dev team</WMSContactOrganization>
+    <WMSContactPerson type="QString">Alessandro Pasotti</WMSContactPerson>
+    <WMSContactPhone type="QString"></WMSContactPhone>
+    <WMSContactPosition type="QString"></WMSContactPosition>
+    <WMSDefaultMapUnitsPerMm type="double">1</WMSDefaultMapUnitsPerMm>
+    <WMSExtent type="QStringList">
+      <value>8.20315414376310059</value>
+      <value>44.901236559338642</value>
+      <value>8.204164917965862</value>
+      <value>44.90159838674664172</value>
+    </WMSExtent>
+    <WMSFees type="QString">conditions unknown</WMSFees>
+    <WMSImageQuality type="int">90</WMSImageQuality>
+    <WMSKeywordList type="QStringList">
+      <value></value>
+    </WMSKeywordList>
+    <WMSMaxAtlasFeatures type="int">1</WMSMaxAtlasFeatures>
+    <WMSOnlineResource type="QString"></WMSOnlineResource>
+    <WMSPrecision type="QString">4</WMSPrecision>
+    <WMSRequestDefinedDataSources type="bool">false</WMSRequestDefinedDataSources>
+    <WMSRestrictedComposers type="QStringList"/>
+    <WMSRestrictedLayers type="QStringList"/>
+    <WMSRootName type="QString"></WMSRootName>
+    <WMSSegmentizeFeatureInfoGeometry type="bool">false</WMSSegmentizeFeatureInfoGeometry>
+    <WMSServiceAbstract type="QString">Some UTF8 text èòù</WMSServiceAbstract>
+    <WMSServiceCapabilities type="bool">true</WMSServiceCapabilities>
+    <WMSServiceTitle type="QString">QGIS TestProject</WMSServiceTitle>
+    <WMSUrl type="QString"></WMSUrl>
+    <WMSUseLayerIDs type="bool">false</WMSUseLayerIDs>
+    <WMTSGrids>
+      <CRS type="QStringList"/>
+      <Config type="QStringList"/>
+    </WMTSGrids>
+    <WMTSJpegLayers>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+      <Project type="bool">false</Project>
+    </WMTSJpegLayers>
+    <WMTSLayers>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+      <Project type="bool">false</Project>
+    </WMTSLayers>
+    <WMTSMinScale type="int">5000</WMTSMinScale>
+    <WMTSPngLayers>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+      <Project type="bool">false</Project>
+    </WMTSPngLayers>
+    <WMTSUrl type="QString"></WMTSUrl>
+  </properties>
+  <visibility-presets/>
+  <transformContext/>
+  <projectMetadata>
+    <identifier></identifier>
+    <parentidentifier></parentidentifier>
+    <language></language>
+    <type></type>
+    <title>QGIS Test Project</title>
+    <abstract></abstract>
+    <contact>
+      <name></name>
+      <organization></organization>
+      <position></position>
+      <voice></voice>
+      <fax></fax>
+      <email></email>
+      <role></role>
+    </contact>
+    <links/>
+    <author></author>
+    <creation>2000-01-01T00:00:00</creation>
+  </projectMetadata>
+  <Annotations/>
+  <Layouts>
+    <Layout worldFileMap="" printResolution="300" units="mm" name="mytemplate">
+      <Snapper snapToItems="1" snapToGrid="0" snapToGuides="1" tolerance="5"/>
+      <Grid offsetY="0" resUnits="mm" offsetX="0" resolution="10" offsetUnits="mm"/>
+      <PageCollection>
+        <symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="fill">
+          <layer locked="0" pass="0" class="SimpleFill" enabled="1">
+            <prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+            <prop k="color" v="255,255,255,255"/>
+            <prop k="joinstyle" v="miter"/>
+            <prop k="offset" v="0,0"/>
+            <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+            <prop k="offset_unit" v="MM"/>
+            <prop k="outline_color" v="0,0,0,255"/>
+            <prop k="outline_style" v="no"/>
+            <prop k="outline_width" v="0.26"/>
+            <prop k="outline_width_unit" v="MM"/>
+            <prop k="style" v="solid"/>
+            <data_defined_properties>
+              <Option type="Map">
+                <Option value="" name="name" type="QString"/>
+                <Option name="properties"/>
+                <Option value="collection" name="type" type="QString"/>
+              </Option>
+            </data_defined_properties>
+          </layer>
+        </symbol>
+        <LayoutItem visibility="1" opacity="1" id="" background="true" positionOnPage="0,0,mm" zValue="0" uuid="{45febe5f-bfdd-455a-aef5-c096b4677622}" position="0,0,mm" templateUuid="{45febe5f-bfdd-455a-aef5-c096b4677622}" groupUuid="" frameJoinStyle="miter" size="297,210,mm" frame="false" type="65638" itemRotation="0" positionLock="false" referencePoint="0" outlineWidthM="0.3,mm" blendMode="0" excludeFromExports="0">
+          <FrameColor green="0" red="0" alpha="255" blue="0"/>
+          <BackgroundColor green="255" red="255" alpha="255" blue="255"/>
+          <LayoutObject>
+            <dataDefinedProperties>
+              <Option type="Map">
+                <Option value="" name="name" type="QString"/>
+                <Option name="properties"/>
+                <Option value="collection" name="type" type="QString"/>
+              </Option>
+            </dataDefinedProperties>
+            <customproperties/>
+          </LayoutObject>
+        </LayoutItem>
+        <GuideCollection visible="1"/>
+      </PageCollection>
+      <LayoutItem followPreset="false" keepLayerSet="false" visibility="1" opacity="1" id="" background="true" mapRotation="0" positionOnPage="126,143,mm" zValue="2" followPresetName="" uuid="{5ed7a90f-8af2-4535-a15e-e18a7f6c5d1f}" position="126,143,mm" templateUuid="{5ed7a90f-8af2-4535-a15e-e18a7f6c5d1f}" groupUuid="" labelMargin="0,mm" frameJoinStyle="miter" size="61,26,mm" frame="false" type="65639" drawCanvasItems="true" itemRotation="0" positionLock="false" referencePoint="0" outlineWidthM="0.3,mm" blendMode="0" excludeFromExports="0" mapFlags="1">
+        <FrameColor green="0" red="0" alpha="255" blue="0"/>
+        <BackgroundColor green="255" red="255" alpha="255" blue="255"/>
+        <LayoutObject>
+          <dataDefinedProperties>
+            <Option type="Map">
+              <Option value="" name="name" type="QString"/>
+              <Option name="properties"/>
+              <Option value="collection" name="type" type="QString"/>
+            </Option>
+          </dataDefinedProperties>
+          <customproperties/>
+        </LayoutObject>
+        <Extent xmin="8.20128754650006186" xmax="8.20679772684772146" ymax="44.90260402302108389" ymin="44.90025542156142535"/>
+        <LayerSet/>
+        <ComposerMapGrid rightAnnotationDirection="0" intervalY="0" gridFramePenThickness="0.5" rightFrameDivisions="0" frameFillColor2="0,0,0,255" topAnnotationPosition="1" showAnnotation="0" unit="0" offsetY="0" show="0" leftAnnotationDisplay="0" gridFramePenColor="0,0,0,255" gridFrameWidth="2" gridStyle="0" gridFrameStyle="0" annotationFontColor="0,0,0,255" leftAnnotationDirection="0" annotationFormat="0" gridFrameMargin="0" offsetX="0" annotationPrecision="3" topAnnotationDisplay="0" rightAnnotationDisplay="0" bottomAnnotationDisplay="0" gridFrameSideFlags="15" bottomAnnotationDirection="0" leftAnnotationPosition="1" bottomAnnotationPosition="1" topAnnotationDirection="0" bottomFrameDivisions="0" name="Grille 1" leftFrameDivisions="0" rightAnnotationPosition="1" intervalX="0" uuid="{ca78854d-b53f-4d8b-97bd-6bbf0df72ad0}" frameFillColor1="255,255,255,255" annotationExpression="" position="3" frameAnnotationDistance="1" crossLength="3" blendMode="0" topFrameDivisions="0">
+          <lineStyle>
+            <symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="line">
+              <layer locked="0" pass="0" class="SimpleLine" enabled="1">
+                <prop k="capstyle" v="square"/>
+                <prop k="customdash" v="5;2"/>
+                <prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="customdash_unit" v="MM"/>
+                <prop k="draw_inside_polygon" v="0"/>
+                <prop k="joinstyle" v="bevel"/>
+                <prop k="line_color" v="0,0,0,255"/>
+                <prop k="line_style" v="solid"/>
+                <prop k="line_width" v="0"/>
+                <prop k="line_width_unit" v="MM"/>
+                <prop k="offset" v="0"/>
+                <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="offset_unit" v="MM"/>
+                <prop k="ring_filter" v="0"/>
+                <prop k="use_custom_dash" v="0"/>
+                <prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <data_defined_properties>
+                  <Option type="Map">
+                    <Option value="" name="name" type="QString"/>
+                    <Option name="properties"/>
+                    <Option value="collection" name="type" type="QString"/>
+                  </Option>
+                </data_defined_properties>
+              </layer>
+            </symbol>
+          </lineStyle>
+          <markerStyle>
+            <symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="marker">
+              <layer locked="0" pass="0" class="SimpleMarker" enabled="1">
+                <prop k="angle" v="0"/>
+                <prop k="color" v="0,0,0,255"/>
+                <prop k="horizontal_anchor_point" v="1"/>
+                <prop k="joinstyle" v="bevel"/>
+                <prop k="name" v="circle"/>
+                <prop k="offset" v="0,0"/>
+                <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="offset_unit" v="MM"/>
+                <prop k="outline_color" v="35,35,35,255"/>
+                <prop k="outline_style" v="solid"/>
+                <prop k="outline_width" v="0"/>
+                <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="outline_width_unit" v="MM"/>
+                <prop k="scale_method" v="diameter"/>
+                <prop k="size" v="2"/>
+                <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="size_unit" v="MM"/>
+                <prop k="vertical_anchor_point" v="1"/>
+                <data_defined_properties>
+                  <Option type="Map">
+                    <Option value="" name="name" type="QString"/>
+                    <Option name="properties"/>
+                    <Option value="collection" name="type" type="QString"/>
+                  </Option>
+                </data_defined_properties>
+              </layer>
+            </symbol>
+          </markerStyle>
+          <annotationFontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
+        </ComposerMapGrid>
+        <AtlasMap margin="0.10000000000000001" scalingMode="2" atlasDriven="0"/>
+        <labelBlockingItems/>
+      </LayoutItem>
+      <LayoutItem followPreset="false" keepLayerSet="false" visibility="1" opacity="1" id="" background="true" mapRotation="0" positionOnPage="98.7716,20.1872,mm" zValue="1" followPresetName="" uuid="{8fec18d6-8ba0-47d6-914e-3daffe8a8633}" position="98.7716,20.1872,mm" templateUuid="{8fec18d6-8ba0-47d6-914e-3daffe8a8633}" groupUuid="" labelMargin="0,mm" frameJoinStyle="miter" size="87,103,mm" frame="false" type="65639" drawCanvasItems="true" itemRotation="0" positionLock="false" referencePoint="0" outlineWidthM="0.3,mm" blendMode="0" excludeFromExports="0" mapFlags="1">
+        <FrameColor green="0" red="0" alpha="255" blue="0"/>
+        <BackgroundColor green="255" red="255" alpha="255" blue="255"/>
+        <LayoutObject>
+          <dataDefinedProperties>
+            <Option type="Map">
+              <Option value="" name="name" type="QString"/>
+              <Option name="properties"/>
+              <Option value="collection" name="type" type="QString"/>
+            </Option>
+          </dataDefinedProperties>
+          <customproperties/>
+        </LayoutObject>
+        <Extent xmin="8.20202108826836884" xmax="8.20606418507941449" ymax="44.9038230497138855" ymin="44.89903639486862374"/>
+        <LayerSet/>
+        <ComposerMapGrid rightAnnotationDirection="0" intervalY="0" gridFramePenThickness="0.5" rightFrameDivisions="0" frameFillColor2="0,0,0,255" topAnnotationPosition="1" showAnnotation="0" unit="0" offsetY="0" show="0" leftAnnotationDisplay="0" gridFramePenColor="0,0,0,255" gridFrameWidth="2" gridStyle="0" gridFrameStyle="0" annotationFontColor="0,0,0,255" leftAnnotationDirection="0" annotationFormat="0" gridFrameMargin="0" offsetX="0" annotationPrecision="3" topAnnotationDisplay="0" rightAnnotationDisplay="0" bottomAnnotationDisplay="0" gridFrameSideFlags="15" bottomAnnotationDirection="0" leftAnnotationPosition="1" bottomAnnotationPosition="1" topAnnotationDirection="0" bottomFrameDivisions="0" name="Grille 1" leftFrameDivisions="0" rightAnnotationPosition="1" intervalX="0" uuid="{94630841-1b07-4bc2-9cf7-1dce50a01a3e}" frameFillColor1="255,255,255,255" annotationExpression="" position="3" frameAnnotationDistance="1" crossLength="3" blendMode="0" topFrameDivisions="0">
+          <lineStyle>
+            <symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="line">
+              <layer locked="0" pass="0" class="SimpleLine" enabled="1">
+                <prop k="capstyle" v="square"/>
+                <prop k="customdash" v="5;2"/>
+                <prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="customdash_unit" v="MM"/>
+                <prop k="draw_inside_polygon" v="0"/>
+                <prop k="joinstyle" v="bevel"/>
+                <prop k="line_color" v="0,0,0,255"/>
+                <prop k="line_style" v="solid"/>
+                <prop k="line_width" v="0"/>
+                <prop k="line_width_unit" v="MM"/>
+                <prop k="offset" v="0"/>
+                <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="offset_unit" v="MM"/>
+                <prop k="ring_filter" v="0"/>
+                <prop k="use_custom_dash" v="0"/>
+                <prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <data_defined_properties>
+                  <Option type="Map">
+                    <Option value="" name="name" type="QString"/>
+                    <Option name="properties"/>
+                    <Option value="collection" name="type" type="QString"/>
+                  </Option>
+                </data_defined_properties>
+              </layer>
+            </symbol>
+          </lineStyle>
+          <markerStyle>
+            <symbol clip_to_extent="1" alpha="1" name="" force_rhr="0" type="marker">
+              <layer locked="0" pass="0" class="SimpleMarker" enabled="1">
+                <prop k="angle" v="0"/>
+                <prop k="color" v="0,0,0,255"/>
+                <prop k="horizontal_anchor_point" v="1"/>
+                <prop k="joinstyle" v="bevel"/>
+                <prop k="name" v="circle"/>
+                <prop k="offset" v="0,0"/>
+                <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="offset_unit" v="MM"/>
+                <prop k="outline_color" v="35,35,35,255"/>
+                <prop k="outline_style" v="solid"/>
+                <prop k="outline_width" v="0"/>
+                <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="outline_width_unit" v="MM"/>
+                <prop k="scale_method" v="diameter"/>
+                <prop k="size" v="2"/>
+                <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+                <prop k="size_unit" v="MM"/>
+                <prop k="vertical_anchor_point" v="1"/>
+                <data_defined_properties>
+                  <Option type="Map">
+                    <Option value="" name="name" type="QString"/>
+                    <Option name="properties"/>
+                    <Option value="collection" name="type" type="QString"/>
+                  </Option>
+                </data_defined_properties>
+              </layer>
+            </symbol>
+          </markerStyle>
+          <annotationFontProperties description="Cantarell,11,-1,5,50,0,0,0,0,0" style=""/>
+        </ComposerMapGrid>
+        <AtlasMap margin="0.10000000000000001" scalingMode="2" atlasDriven="0"/>
+        <labelBlockingItems/>
+      </LayoutItem>
+      <customproperties/>
+      <Atlas pageNameExpression="" sortFeatures="0" filenamePattern="'output_'||@atlas_featurenumber" hideCoverage="0" enabled="0" coverageLayer="" filterFeatures="0"/>
+    </Layout>
+  </Layouts>
+</qgis>
diff --git a/tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.gpkg b/tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.gpkg
new file mode 100644
index 0000000000000000000000000000000000000000..7031c59c40f8d75e3a19879c2f06cd65e598bd18
GIT binary patch
literal 98304
zcmeI5OKcnYeaDBgBubWL*}L&_Td(84xlt)X)Ps~{S>9DPv^18vkw}S;*owOyjL1K!
ziOCu6%qWt)*%p$#+a^IzJ)~%X0tE{6*dT|b$DH=mOKweo9Ezf8d&wb(91;}U|GYTE
zhaRMC$=-Yk*&6<zzyIg=`@e<XWY(4?osy!WRz#glaaTB>kNX-S9LL>Y|K4Q(oX<3S
z=ytxa-#(5D{k!pfY4z(%o^bEu4Q~9cANH`2uA$!=;enywTMynucm@Fw009sH0T2KI
z5C8!X009sH0T6gW1YR??_g7yVWdC;$^l(FeKQw<yVGsC#00@8p2!H?xfB*=9z!#ms
ze(@iR{iEEqu4jXLHy$o!$en3YqDq14Ql4MUEM5845}#UH$UF{Ok-^AfJeylFzY5X0
zJJZ2PX7vG|P9+xIB)6w#??k6&BeA(V<FT39SZr$M_EaRE%RWe@6WR60L8IhgBse=c
zH5vTigBCHjr((B_nALP*g=e)bsg%mwQhqZSnQW2#&fH|wNS;e3vX6rWT4Kpr%JIqQ
z?DWi3Y%VqvotvAUY9+&5G!|<u!?YzsS&>VUzEz+TWl=XDNM2FYf+UMN)rcgM0?kVm
zvCMuO^=d?siM~mRO;f9GQdN-(pS=GMSNrA}>F?z@J8FWgYILihjIB^LFY1bFa2dL~
znohm%5+_Zmf{{OToiMvdz0WUX6RG6mpaV~cW>$mDWa8=g3ZLcEkArzC>#A55DpZvU
zk|;BisEgO~Vwnm>G0)HkBhk9JqFC0bKt)ZL<WgfsD^gZeebb4xOs_(9m04c2g^kWl
zS~ePglwiH-Q82>CGg)T)=GXOLB$-NQAAAtuA7%Mu#%!3;NY=lCqg7S;);w!Oo{Wm~
zcIP6a8}1{sOhMP?nZc7$X0O7e^|<3a>>3Yb^vQhGNU<eLEOCX5%3`6!$Y}Fllefxc
zGP?alr#m_eSA+sBY7Ay`pPjlhGt2tRpK^X?%Y8R1IhiGuWLhwWjgl%>H>Etuq%+A>
zlHYRTY7gE-ZZ9G#EmD=rc}lchO{bN|pF1D_JKQzj%_nXxc~NEEjw#cr<nvnLwFlxR
zI-(L||L+_6YmWWk0|Fob0w4eaAOHd&00JNY0w4eaAaE80KJ*Q&-B=r(H|pxz*eVI7
z&8f-Q?P-Bls`{=_7I&#CY^&@nPT1H`c8XNgw^XVfpE5QXog16HJr<qIMyKvZZ{MA{
zGd?{z`^_uAy2z^X4gG>+Klp$E2!H?xfB*=900@8p2!H?xfB*=*as-Aito0v%GJyU6
zE2mfp3<4kk0w4eaAOHd&00JNY0w4ea9s(!Z|670m|8s8W=bo&11OX5L0T2KI5C8!X
z009sH0T2KI5O_5R4Ervu_2K^i)le3s1OX5L0T2KI5C8!X009sH0T2LzP6@Pg|Nj{`
z^jW9%ARh>T00@8p2!H?xfB*=900@8p2!O!Z5V+&>uiXfA^_}3tpS_^Kct6ALYATV;
zI{yED#tr@KY$Qc3AOHd&00JNY0w4eaAOHd&00JNY0?&cKc=y_k6Zrjejsf8R?>R6>
z5g-5pAOHd&00JNY0w4eaAOHd&aBc)n{`ddfm2(pk6@vf>fB*=900@8p2!H?xfB*=9
z00^7`0ptE3`~NcljVeF@1V8`;KmY_l00ck)1V8`;K;Rq+81MhX{{I{mfT}?N1V8`;
zKmY_l00ck)1V8`;K;R4r;Qs#%AfpNp009sH0T2KI5C8!X009sH0T4K60>=HnZ)l%m
zKlp$E2!H?xfB*=900@8p2!H?xfB*=*FaqE4^{(9*`|#GrR!JyrPEE#cPYbkC)pv!m
zxJy-GTUF$eu(6@+I6nJJ)h8uE)m2IbNiNWxO<k|votW6(-X3R3s$%|$Sfb;KTAI+R
zG#`ykPP|QbbSi6-B3t>kRY|8~id^2c{Qv)y8~W)BYaj{+0T2KI5C8!X009sH0T2KI
z5C8!XI3<Didf4GX8}IvTJUbY?{2T5y?g@AKcb9&7`6rjZbIEt<@A@|femwBR|L6TT
zd;Ya&yZhtruXcUz`w>fYy3hXNYyRuGvA$<lbyX^rsA|fhOJyolL>9E;{MwcZ`X)Qt
z(5R|6rddey@hnfW>BQ0!pC+Nk_*P|v$UXjkD$SEbGQ+2{B$aH=7a}YL;o}PrNILb9
zWmrliNrqqM7qTQBPh|L!_`Os*8zCV}E~3ap7dOh3gqmasg~+!hr7Y@HBY8#EbXAmO
z{VuUvX*Q4KMOjvKvO!6iY8ufuMVUlHVe;?+&m<j5@(;)B(!Wch;dcn1T-<;Es{i^L
z!+7g3j87G%B9!U3X<68+7MK`~kdB4eR6-45ZgtV%uM~-!=9EA!89M>$5up{%$$Ffg
z)bEl>8|J%LESNnffZ3r%y7k&NU4wbf_UH=M(i%^IZ+@sZur})B%wtIH!!kQn6vQoE
zF~19@+0{-SH6hv%aAj}%vOh37>N^-VyHZ1R!`C6lYUB5odD0L`M$8ffS*%c!<sW4u
zd8NEnkv#!5LEJEsOl3(jx4axF(4r(uIy)dWbGs2*Ua49ox?u~cWG2f7g=ChLsG#R5
z$t4qOIo4}kAtJ2j*93@=`pU!M_Xc|dnXx0mc?U*|oG0Y+!NMhfU~J6y>70ws6K~@2
zd>?Fv=ZW<S-q3!Jjj;Ce#+X}!RyRH!7Q0EM(x%Ra-iFL(_0~|>I_|KHRcVI}Y&(J`
zJ*8wZl{2iNCXyAo+d9&tx9Sr?*DGW-omh#d*U8uUbuWX6XK)KgJlTpYTcsknYBpvK
zKCzT+EFnzN{Czf%Cl~mPWvgr=U`Oz}=CP4*_~6SI{ehVo-zQd)jam~l+B5+gVFO2M
z(@5cMO}$3FZH{QFCP;;5<y0hD*lB`mgzh$niaV{+ve4$V^(aevMSE^68`NZ$&6-!Q
zAgjI2%F(K#E{SD9rA0y8)yRmQFuXL-8+bf(;(p4=+oPPPcNzM)^o;ZS1GBTfzr5-8
zSLZ%Qu!aiFRDWY&U$d?olN_$>rcu!CDYZiM-70N0BpzlPPf0eBTxWgOEvwQT<k2+i
zYer>8D>bk6dBv_9F6+A77R#OYT1oR*TbG`7Q6s%vuXwk|HY>kX&up}&yl{G3O7!;z
zKA1hymTF3|EkcO3w26y}zV?f<=8(o3`uE=G@dqX*e0z^w!&FKt)0Q<}nF4qNdYcW>
z8|@k2ju?1~RMfXr%4*q?-N|8*zaP&nTT^m4-rF0<O&p2KTd&>kyg~khx4Qg+P{{Ym
zw%fM4b~#@zG`Go#@>=N;4Pwh|Q82nveVT|=V1vF?l&ES&Sk}wd8(LnKs_ufrX?iFW
zDT|se<k^0p#O61)*v=+a+!>BI2}jtrqNqz1IuaUQ9~-WW4HvS*5AF`H+#N1{GZYEQ
z%62Fmj(A7%2=R{Kk&0*FW>KC2yJ22v?hLBY9gLZyZu+wa&8DfZVRWqxu5;bJftApa
z8g{f`cLe8a&)kKRXSEF9$=b~}v3<rycK?FUoO=(#u5mO-YTAB7SXZ;DG^DU*kJ?Jq
z9VQPMQN3eggx%VUvh<WqM@>snZxrh|idtY(Rm<tyvzl!%$40vg5B7hT8}R*r>x=dN
zchC2`-|PBM-w!VT)8M}iJ{|bY#c#35f8qZ5bld*tmD^Mr6X<`QSAj2cIs1t>t+SHr
zhwV$fE8R}dN?Mfhvg}R0qLIp$W}cLkR5op}k<>gaakr<&>fbytsmt`$+8%#BV6lAX
zXqMKNqSGT2tM0loYAo$Tlhl3UO?7U^CUruz$JX9<xoi_}oXAdXE*+krcm;mR&QQFf
zwP~kKEZ493uRml5dvk}`slDO0cE+6=YO6w8SZZCeb2HU?DOw%!wLUYo4-ec!(+6L&
z*al9<wnIa$6Za*v)H>N(9{8OQW%hNe%SVqvX&vKtcmi!p>n-DOBejl^PIs)|`6;wl
z)Hb+ULf0&mtw#RiWnPh-TDF6p8-3UJ2G;tX&Dw@z{}KwcOxeM4-JVc5{?B2LPvI=p
z?aQLzDJu+;`28$909|C)LhKHN*<0{<8G`m*lD!6K+D@}erYxyzI+<_yK1QPUwNP2v
zrmAO$9cF2*u+Z_6gsdx%gPykz(StSUouM8&tkBVedwp^?dKi7KdRV>QYutUTo4Zf@
z?nI*>Zc#Z;8@_(YF=X@Vqakv{*l9*s&hTFDkNttQHQ)X<v&`cy;`kJ=*VTL?%p)XN
zlnTMxp|bakJ)X;^5=mC(3hzBXBthp`Do9pY0(Q+BG+Grjcdz07^*=h%0^U0I?{r;c
zt>o&;Xffk>Q=QwYs7{FX7V!4fNNoWR|Np0+*iZlnfB*=900@8p2!H?xfB*=900_MF
z1hD^q=~V;)K>!3m00ck)1V8`;KmY_l00cnb)C5fb{{v$j`@shUKmY_l00ck)1V8`;
zK)_4jyQ{u#?r*;04Z<@BfB*=*sswQV|Eg*Za)ST}fB*=900@8p2!H?xfB*=9z{v>=
z4t&O4<bKUv{ICB1>%ZI==)Kk5)s-Fm+kyXOfnT`Kem>;C{xNewbHR26W4%T3ct04X
z2V1JEySB5M<8wHUGaTPDoz~<yJ89GD410}0k|^cExW~1I<0aenNMo0HKb=}3!M4Q<
z+Ae9B6VQ2*T3#GCy?&T)C^#7XivRjwto423yy&6r!fhWOv9rKzIev;coLygi9&#sj
z^<z@6!C+vF*Em@2P~yo&%SoZ9*hI!~K2O+-Co)+fq4CCBKTSu5ZkllTMQiKXTW_1%
z`jk18HDAloskWkLr>*FDXp40pQ(cB8jjnXO&Kw6tY334lbveFZyn!T}>Zr4QBfgwt
zuH-H2F#PL8SoJHC{HW1hB8FTm;!bmfm0|s`3{4TXyC^Ma4w;|6-LZLCZl2D<I;@%;
z<8bhw&`+1yc}HZr-Ez$Q!_xYme#;;D_+#JRN2V*O_J@S3s4~abo#uPfnLSO1SM5(u
zf>nKRL{^ypZKahjstB>t7%80i@Lrkt10Q|l+fzDhwyH3<e(kr~%=X4<8*P>n95H`6
zO{#M)P3m!k_vlT3V0YKIM>}k;QC|D4HF8}$ZDWl>j@GZ?lAYXJPTdRd{n?lO0Y&NC
zt8~`Rwwq`-?i-18HWyze*$&M(NOGA(a*3Grk4Od6f%}f>tKIltl6TGL-7s6IzkSSN
z{UGuu)}rk7j>mCpr8IpO1G!z5Gm<-tvUWytcNuo;rCf)x_lu3xWQ@2gMQhr9Mu$yx
z{gv}#s<v&=UPDivow}yZNL}qO#9qu+$5~&z%F8?4{~t4MA{qoh00ck)1V8`;KmY_l
N00ck)1ik<S{vVW8xCQ_K

literal 0
HcmV?d00001

diff --git a/tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.qgs b/tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.qgs
new file mode 100644
index 0000000000..6857aecc75
--- /dev/null
+++ b/tests/testdata/qgis_server/bug_gh30264_empty_layer_wrong_bbox.qgs
@@ -0,0 +1,373 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis projectname="" version="3.7.0-Master">
+  <homePath path=""/>
+  <title></title>
+  <autotransaction active="0"/>
+  <evaluateDefaultValues active="0"/>
+  <trust active="0"/>
+  <projectCrs>
+    <spatialrefsys>
+      <proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
+      <srsid>3857</srsid>
+      <srid>3857</srid>
+      <authid>EPSG:3857</authid>
+      <description>WGS 84 / Pseudo-Mercator</description>
+      <projectionacronym>merc</projectionacronym>
+      <ellipsoidacronym>WGS84</ellipsoidacronym>
+      <geographicflag>false</geographicflag>
+    </spatialrefsys>
+  </projectCrs>
+  <layer-tree-group>
+    <customproperties/>
+    <layer-tree-layer id="bug_gh30264_empty_layer_wrong_bbox_d719236a_422e_4b91_bce6_c2cdeef5a610" name="bug_gh30264_empty_layer_wrong_bbox" providerKey="ogr" checked="Qt::Checked" source="./bug_gh30264_empty_layer_wrong_bbox.gpkg|layername=bug_gh30264_empty_layer_wrong_bbox" expanded="1">
+      <customproperties/>
+    </layer-tree-layer>
+    <custom-order enabled="0">
+      <item>bug_gh30264_empty_layer_wrong_bbox_d719236a_422e_4b91_bce6_c2cdeef5a610</item>
+    </custom-order>
+  </layer-tree-group>
+  <snapping-settings type="1" tolerance="12" unit="1" intersection-snapping="0" mode="2" enabled="0">
+    <individual-layer-settings>
+      <layer-setting id="bug_gh30264_empty_layer_wrong_bbox_d719236a_422e_4b91_bce6_c2cdeef5a610" type="1" tolerance="12" units="1" enabled="0"/>
+    </individual-layer-settings>
+  </snapping-settings>
+  <relations/>
+  <mapcanvas name="theMapCanvas" annotationsVisible="1">
+    <units>meters</units>
+    <extent>
+      <xmin>868261.33347499091178179</xmin>
+      <ymin>5293022.48653715662658215</ymin>
+      <xmax>1557326.93517118180170655</xmax>
+      <ymax>5752909.36073758266866207</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
+        <srsid>3857</srsid>
+        <srid>3857</srid>
+        <authid>EPSG:3857</authid>
+        <description>WGS 84 / Pseudo-Mercator</description>
+        <projectionacronym>merc</projectionacronym>
+        <ellipsoidacronym>WGS84</ellipsoidacronym>
+        <geographicflag>false</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+    <expressionContextScope/>
+  </mapcanvas>
+  <projectModels/>
+  <legend updateDrawingOrder="true">
+    <legendlayer showFeatureCount="0" drawingOrder="-1" name="bug_gh30264_empty_layer_wrong_bbox" checked="Qt::Checked" open="true">
+      <filegroup hidden="false" open="true">
+        <legendlayerfile visible="1" isInOverview="0" layerid="bug_gh30264_empty_layer_wrong_bbox_d719236a_422e_4b91_bce6_c2cdeef5a610"/>
+      </filegroup>
+    </legendlayer>
+  </legend>
+  <mapViewDocks/>
+  <projectlayers>
+    <maplayer simplifyDrawingHints="1" simplifyDrawingTol="1" autoRefreshTime="0" geometry="Point" simplifyMaxScale="1" type="vector" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" wkbType="Point" refreshOnNotifyEnabled="0" styleCategories="AllStyleCategories" minScale="1e+08" maxScale="0" readOnly="0" labelsEnabled="0" simplifyLocal="1" refreshOnNotifyMessage="" simplifyAlgorithm="0">
+      <id>bug_gh30264_empty_layer_wrong_bbox_d719236a_422e_4b91_bce6_c2cdeef5a610</id>
+      <datasource>./bug_gh30264_empty_layer_wrong_bbox.gpkg|layername=bug_gh30264_empty_layer_wrong_bbox</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>bug_gh30264_empty_layer_wrong_bbox</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
+          <srsid>3452</srsid>
+          <srid>4326</srid>
+          <authid>EPSG:4326</authid>
+          <description>WGS 84</description>
+          <projectionacronym>longlat</projectionacronym>
+          <ellipsoidacronym>WGS84</ellipsoidacronym>
+          <geographicflag>true</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type>dataset</type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 type="singleSymbol" symbollevels="0" forceraster="0" enableorderby="0">
+        <symbols>
+          <symbol alpha="1" type="marker" clip_to_extent="1" name="0" force_rhr="0">
+            <layer class="SimpleMarker" pass="0" locked="0" enabled="1">
+              <prop k="angle" v="0"/>
+              <prop k="color" v="145,82,45,255"/>
+              <prop k="horizontal_anchor_point" v="1"/>
+              <prop k="joinstyle" v="bevel"/>
+              <prop k="name" v="circle"/>
+              <prop k="offset" v="0,0"/>
+              <prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+              <prop k="offset_unit" v="MM"/>
+              <prop k="outline_color" v="35,35,35,255"/>
+              <prop k="outline_style" v="solid"/>
+              <prop k="outline_width" v="0"/>
+              <prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+              <prop k="outline_width_unit" v="MM"/>
+              <prop k="scale_method" v="diameter"/>
+              <prop k="size" v="2"/>
+              <prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
+              <prop k="size_unit" v="MM"/>
+              <prop k="vertical_anchor_point" v="1"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option type="QString" value="" name="name"/>
+                  <Option name="properties"/>
+                  <Option type="QString" value="collection" name="type"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties/>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
+        <activeChecks type="StringList">
+          <Option type="QString" value=""/>
+        </activeChecks>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="fid">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="name">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias field="fid" name="" index="0"/>
+        <alias field="name" name="" index="1"/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default field="fid" expression="" applyOnUpdate="0"/>
+        <default field="name" expression="" applyOnUpdate="0"/>
+      </defaults>
+      <constraints>
+        <constraint field="fid" unique_strength="1" exp_strength="0" constraints="3" notnull_strength="1"/>
+        <constraint field="name" unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint desc="" field="fid" exp=""/>
+        <constraint desc="" field="name" exp=""/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" sortOrder="0" actionWidgetStyle="dropDown">
+        <columns/>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable/>
+      <labelOnTop/>
+      <widgets/>
+      <previewExpression></previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+  </projectlayers>
+  <layerorder>
+    <layer id="bug_gh30264_empty_layer_wrong_bbox_d719236a_422e_4b91_bce6_c2cdeef5a610"/>
+  </layerorder>
+  <properties>
+    <DefaultStyles>
+      <ColorRamp type="QString"></ColorRamp>
+      <Fill type="QString"></Fill>
+      <Line type="QString"></Line>
+      <Marker type="QString"></Marker>
+      <Opacity type="double">1</Opacity>
+      <RandomColors type="bool">true</RandomColors>
+    </DefaultStyles>
+    <Gui>
+      <CanvasColorBluePart type="int">255</CanvasColorBluePart>
+      <CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
+      <CanvasColorRedPart type="int">255</CanvasColorRedPart>
+      <SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
+      <SelectionColorBluePart type="int">0</SelectionColorBluePart>
+      <SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
+      <SelectionColorRedPart type="int">255</SelectionColorRedPart>
+    </Gui>
+    <Legend>
+      <filterByMap type="bool">false</filterByMap>
+    </Legend>
+    <Macros>
+      <pythonCode type="QString"></pythonCode>
+    </Macros>
+    <Measure>
+      <Ellipsoid type="QString">WGS84</Ellipsoid>
+    </Measure>
+    <Measurement>
+      <AreaUnits type="QString">m2</AreaUnits>
+      <DistanceUnits type="QString">meters</DistanceUnits>
+    </Measurement>
+    <PAL>
+      <CandidatesLine type="int">50</CandidatesLine>
+      <CandidatesPoint type="int">16</CandidatesPoint>
+      <CandidatesPolygon type="int">30</CandidatesPolygon>
+      <DrawRectOnly type="bool">false</DrawRectOnly>
+      <SearchMethod type="int">0</SearchMethod>
+      <ShowingAllLabels type="bool">false</ShowingAllLabels>
+      <ShowingCandidates type="bool">false</ShowingCandidates>
+      <ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
+      <TextFormat type="int">0</TextFormat>
+    </PAL>
+    <Paths>
+      <Absolute type="bool">false</Absolute>
+    </Paths>
+    <PositionPrecision>
+      <Automatic type="bool">true</Automatic>
+      <DecimalPlaces type="int">2</DecimalPlaces>
+      <DegreeFormat type="QString">MU</DegreeFormat>
+    </PositionPrecision>
+    <SpatialRefSys>
+      <ProjectionsEnabled type="int">1</ProjectionsEnabled>
+    </SpatialRefSys>
+    <WCSLayers type="QStringList"/>
+    <WCSUrl type="QString"></WCSUrl>
+    <WFSLayers type="QStringList"/>
+    <WFSTLayers>
+      <Delete type="QStringList"/>
+      <Insert type="QStringList"/>
+      <Update type="QStringList"/>
+    </WFSTLayers>
+    <WFSUrl type="QString"></WFSUrl>
+    <WMSAccessConstraints type="QString">None</WMSAccessConstraints>
+    <WMSAddWktGeometry type="bool">false</WMSAddWktGeometry>
+    <WMSContactMail type="QString"></WMSContactMail>
+    <WMSContactOrganization type="QString"></WMSContactOrganization>
+    <WMSContactPerson type="QString"></WMSContactPerson>
+    <WMSContactPhone type="QString"></WMSContactPhone>
+    <WMSContactPosition type="QString"></WMSContactPosition>
+    <WMSDefaultMapUnitsPerMm type="double">1000</WMSDefaultMapUnitsPerMm>
+    <WMSExtent type="QStringList">
+      <value>730814.65538165951147676</value>
+      <value>5293022.48653715662658215</value>
+      <value>1694773.61326451320201159</value>
+      <value>5752909.36073758266866207</value>
+    </WMSExtent>
+    <WMSFees type="QString">conditions unknown</WMSFees>
+    <WMSImageQuality type="int">90</WMSImageQuality>
+    <WMSKeywordList type="QStringList">
+      <value></value>
+    </WMSKeywordList>
+    <WMSMaxAtlasFeatures type="int">1</WMSMaxAtlasFeatures>
+    <WMSOnlineResource type="QString"></WMSOnlineResource>
+    <WMSPrecision type="QString">8</WMSPrecision>
+    <WMSRestrictedComposers type="QStringList"/>
+    <WMSRestrictedLayers type="QStringList"/>
+    <WMSRootName type="QString"></WMSRootName>
+    <WMSSegmentizeFeatureInfoGeometry type="bool">false</WMSSegmentizeFeatureInfoGeometry>
+    <WMSServiceAbstract type="QString"></WMSServiceAbstract>
+    <WMSServiceCapabilities type="bool">false</WMSServiceCapabilities>
+    <WMSServiceTitle type="QString"></WMSServiceTitle>
+    <WMSUrl type="QString"></WMSUrl>
+    <WMSUseLayerIDs type="bool">false</WMSUseLayerIDs>
+    <WMTSGrids>
+      <CRS type="QStringList"/>
+      <Config type="QStringList"/>
+    </WMTSGrids>
+    <WMTSJpegLayers>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+      <Project type="bool">false</Project>
+    </WMTSJpegLayers>
+    <WMTSLayers>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+      <Project type="bool">false</Project>
+    </WMTSLayers>
+    <WMTSMinScale type="int">5000</WMTSMinScale>
+    <WMTSPngLayers>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+      <Project type="bool">false</Project>
+    </WMTSPngLayers>
+    <WMTSUrl type="QString"></WMTSUrl>
+  </properties>
+  <visibility-presets/>
+  <transformContext/>
+  <projectMetadata>
+    <identifier></identifier>
+    <parentidentifier></parentidentifier>
+    <language></language>
+    <type></type>
+    <title></title>
+    <abstract></abstract>
+    <contact>
+      <name></name>
+      <organization></organization>
+      <position></position>
+      <voice></voice>
+      <fax></fax>
+      <email></email>
+      <role></role>
+    </contact>
+    <links/>
+    <author>Alessandro Pasotti</author>
+    <creation>2019-06-19T15:14:37</creation>
+  </projectMetadata>
+  <Annotations/>
+  <Layouts/>
+</qgis>
diff --git a/tests/testdata/qgis_server/getcontext.txt b/tests/testdata/qgis_server/getcontext.txt
index 154e4ecf41..c3abe9ec64 100644
--- a/tests/testdata/qgis_server/getcontext.txt
+++ b/tests/testdata/qgis_server/getcontext.txt
@@ -13,7 +13,7 @@ Content-Type: text/xml; charset=utf-8
   </ows:BoundingBox>
  </General>
  <ResourceList>
-  <Layer group="groupwithoutshortname" hidden="true" queryable="false" id="testlayer3" name="testlayer3" opacity="1">
+  <Layer group="groupwithoutshortname" hidden="false" queryable="false" id="testlayer3" name="testlayer3" opacity="1">
    <ows:Title>testlayer3</ows:Title>
    <ows:OutputFormat>image/png</ows:OutputFormat>
    <Server default="true" service="urn:ogc:serviceType:WMS" version="1.3.0">
@@ -26,7 +26,7 @@ Content-Type: text/xml; charset=utf-8
     </Style>
    </StyleList>
   </Layer>
-  <Layer group="groupwithshortname" hidden="true" queryable="true" id="testlayer2" name="testlayer2" opacity="1">
+  <Layer group="groupwithshortname" hidden="false" queryable="true" id="testlayer2" name="testlayer2" opacity="1">
    <ows:Title>testlayer2</ows:Title>
    <ows:OutputFormat>image/png</ows:OutputFormat>
    <Server default="true" service="urn:ogc:serviceType:WMS" version="1.3.0">
@@ -39,7 +39,7 @@ Content-Type: text/xml; charset=utf-8
     </Style>
    </StyleList>
   </Layer>
-  <Layer hidden="true" queryable="true" id="testlayer_èé" name="testlayer èé" opacity="1">
+  <Layer hidden="false" queryable="true" id="testlayer_èé" name="testlayer èé" opacity="1">
    <ows:Title>A test vector layer</ows:Title>
    <ows:OutputFormat>image/png</ows:OutputFormat>
    <Server default="true" service="urn:ogc:serviceType:WMS" version="1.3.0">
@@ -53,7 +53,7 @@ Content-Type: text/xml; charset=utf-8
     </Style>
    </StyleList>
   </Layer>
-  <Layer hidden="true" queryable="true" id="layer_with_short_name" name="layer_with_short_name" opacity="1">
+  <Layer hidden="false" queryable="true" id="layer_with_short_name" name="layer_with_short_name" opacity="1">
    <ows:Title>A Layer with a short name</ows:Title>
    <ows:OutputFormat>image/png</ows:OutputFormat>
    <Server default="true" service="urn:ogc:serviceType:WMS" version="1.3.0">
diff --git a/tests/testdata/qgis_server/test_project_wms_filter.gpkg b/tests/testdata/qgis_server/test_project_wms_filter.gpkg
new file mode 100644
index 0000000000000000000000000000000000000000..a5e9259cbbd98ce02add99749ef4af85760e6032
GIT binary patch
literal 98304
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
YDpEB|>z+PW)7$Gd4qDwj%u<H_54cC=4FCWD

literal 0
HcmV?d00001

diff --git a/tests/testdata/qgis_server/test_project_wms_filter.qgs b/tests/testdata/qgis_server/test_project_wms_filter.qgs
new file mode 100644
index 0000000000..4cc3986a49
--- /dev/null
+++ b/tests/testdata/qgis_server/test_project_wms_filter.qgs
@@ -0,0 +1,306 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis projectname="" version="3.6.0-Noosa">
+  <homePath path=""/>
+  <title></title>
+  <autotransaction active="0"/>
+  <evaluateDefaultValues active="0"/>
+  <trust active="0"/>
+  <projectCrs>
+    <spatialrefsys>
+      <proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
+      <srsid>3857</srsid>
+      <srid>3857</srid>
+      <authid>EPSG:3857</authid>
+      <description>WGS 84 / Pseudo-Mercator</description>
+      <projectionacronym>merc</projectionacronym>
+      <ellipsoidacronym>WGS84</ellipsoidacronym>
+      <geographicflag>false</geographicflag>
+    </spatialrefsys>
+  </projectCrs>
+  <layer-tree-group>
+    <customproperties/>
+    <layer-tree-layer providerKey="ogr" source="./test_project_wms_filter.gpkg|layername=points" id="points_751bafcd_6bc0_4d4b_9901_dd09704a0e9b" checked="Qt::Checked" name="points" expanded="1">
+      <customproperties/>
+    </layer-tree-layer>
+    <custom-order enabled="0">
+      <item>points_751bafcd_6bc0_4d4b_9901_dd09704a0e9b</item>
+    </custom-order>
+  </layer-tree-group>
+  <snapping-settings enabled="0" mode="2" tolerance="12" unit="1" type="1" intersection-snapping="0">
+    <individual-layer-settings>
+      <layer-setting units="1" enabled="0" id="points_751bafcd_6bc0_4d4b_9901_dd09704a0e9b" tolerance="12" type="1"/>
+    </individual-layer-settings>
+  </snapping-settings>
+  <relations/>
+  <mapcanvas annotationsVisible="1" name="theMapCanvas">
+    <units>meters</units>
+    <extent>
+      <xmin>-218187.4328507388709113</xmin>
+      <ymin>-102171.74223070539301261</ymin>
+      <xmax>169699.14840226876549423</xmax>
+      <ymax>120478.54350206544040702</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
+        <srsid>3857</srsid>
+        <srid>3857</srid>
+        <authid>EPSG:3857</authid>
+        <description>WGS 84 / Pseudo-Mercator</description>
+        <projectionacronym>merc</projectionacronym>
+        <ellipsoidacronym>WGS84</ellipsoidacronym>
+        <geographicflag>false</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+    <expressionContextScope/>
+  </mapcanvas>
+  <legend updateDrawingOrder="true">
+    <legendlayer showFeatureCount="0" checked="Qt::Checked" name="points" drawingOrder="-1" open="true">
+      <filegroup hidden="false" open="true">
+        <legendlayerfile isInOverview="0" layerid="points_751bafcd_6bc0_4d4b_9901_dd09704a0e9b" visible="1"/>
+      </filegroup>
+    </legendlayer>
+  </legend>
+  <mapViewDocks/>
+  <mapViewDocks3D/>
+  <projectlayers>
+    <maplayer hasScaleBasedVisibilityFlag="0" simplifyDrawingHints="1" autoRefreshTime="0" refreshOnNotifyMessage="" minScale="1e+08" refreshOnNotifyEnabled="0" simplifyMaxScale="1" maxScale="0" simplifyLocal="1" readOnly="0" geometry="Point" styleCategories="AllStyleCategories" labelsEnabled="0" simplifyDrawingTol="1" type="vector" autoRefreshEnabled="0" simplifyAlgorithm="0">
+      <extent>
+        <xmin>-77432.828125</xmin>
+        <ymin>26718.03125</ymin>
+        <xmax>-18059.41015625</xmax>
+        <ymax>46261.78515625</ymax>
+      </extent>
+      <id>points_751bafcd_6bc0_4d4b_9901_dd09704a0e9b</id>
+      <datasource>./test_project_wms_filter.gpkg|layername=points</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>points</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs</proj4>
+          <srsid>3857</srsid>
+          <srid>3857</srid>
+          <authid>EPSG:3857</authid>
+          <description>WGS 84 / Pseudo-Mercator</description>
+          <projectionacronym>merc</projectionacronym>
+          <ellipsoidacronym>WGS84</ellipsoidacronym>
+          <geographicflag>false</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type>dataset</type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 enableorderby="0" type="singleSymbol" symbollevels="0" forceraster="0">
+        <symbols>
+          <symbol clip_to_extent="1" alpha="1" type="marker" name="0" force_rhr="0">
+            <layer class="SimpleMarker" locked="0" enabled="1" pass="0">
+              <prop v="0" k="angle"/>
+              <prop v="231,113,72,255" k="color"/>
+              <prop v="1" k="horizontal_anchor_point"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="circle" k="name"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="Pixel" k="offset_unit"/>
+              <prop v="35,35,35,255" k="outline_color"/>
+              <prop v="solid" k="outline_style"/>
+              <prop v="0" k="outline_width"/>
+              <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+              <prop v="Pixel" k="outline_width_unit"/>
+              <prop v="diameter" k="scale_method"/>
+              <prop v="30" k="size"/>
+              <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+              <prop v="Pixel" k="size_unit"/>
+              <prop v="1" k="vertical_anchor_point"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option value="" type="QString" name="name"/>
+                  <Option name="properties"/>
+                  <Option value="collection" type="QString" name="type"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties/>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="id">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="name">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="date">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias field="id" index="0" name=""/>
+        <alias field="name" index="1" name=""/>
+        <alias field="date" index="2" name=""/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default applyOnUpdate="0" expression="" field="id"/>
+        <default applyOnUpdate="0" expression="" field="name"/>
+        <default applyOnUpdate="0" expression="" field="date"/>
+      </defaults>
+      <constraints>
+        <constraint constraints="3" notnull_strength="1" field="id" exp_strength="0" unique_strength="1"/>
+        <constraint constraints="0" notnull_strength="0" field="name" exp_strength="0" unique_strength="0"/>
+        <constraint constraints="0" notnull_strength="0" field="date" exp_strength="0" unique_strength="0"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint desc="" exp="" field="id"/>
+        <constraint desc="" exp="" field="name"/>
+        <constraint desc="" exp="" field="date"/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" actionWidgetStyle="dropDown" sortOrder="0">
+        <columns/>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable/>
+      <labelOnTop/>
+      <widgets/>
+      <previewExpression></previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+  </projectlayers>
+  <layerorder>
+    <layer id="points_751bafcd_6bc0_4d4b_9901_dd09704a0e9b"/>
+  </layerorder>
+  <properties>
+    <Gui>
+      <SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
+      <SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
+      <SelectionColorRedPart type="int">255</SelectionColorRedPart>
+      <CanvasColorRedPart type="int">255</CanvasColorRedPart>
+      <CanvasColorBluePart type="int">255</CanvasColorBluePart>
+      <CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
+      <SelectionColorBluePart type="int">0</SelectionColorBluePart>
+    </Gui>
+    <Measure>
+      <Ellipsoid type="QString">WGS84</Ellipsoid>
+    </Measure>
+    <Measurement>
+      <DistanceUnits type="QString">meters</DistanceUnits>
+      <AreaUnits type="QString">m2</AreaUnits>
+    </Measurement>
+    <Legend>
+      <filterByMap type="bool">false</filterByMap>
+    </Legend>
+    <Paths>
+      <Absolute type="bool">false</Absolute>
+    </Paths>
+    <SpatialRefSys>
+      <ProjectionsEnabled type="int">1</ProjectionsEnabled>
+    </SpatialRefSys>
+    <PositionPrecision>
+      <Automatic type="bool">true</Automatic>
+      <DecimalPlaces type="int">2</DecimalPlaces>
+    </PositionPrecision>
+    <PAL>
+      <CandidatesPoint type="int">16</CandidatesPoint>
+      <DrawRectOnly type="bool">false</DrawRectOnly>
+      <ShowingAllLabels type="bool">false</ShowingAllLabels>
+      <SearchMethod type="int">0</SearchMethod>
+      <CandidatesPolygon type="int">30</CandidatesPolygon>
+      <ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
+      <TextFormat type="int">0</TextFormat>
+      <ShowingCandidates type="bool">false</ShowingCandidates>
+      <CandidatesLine type="int">50</CandidatesLine>
+    </PAL>
+  </properties>
+  <visibility-presets/>
+  <transformContext/>
+  <projectMetadata>
+    <identifier></identifier>
+    <parentidentifier></parentidentifier>
+    <language></language>
+    <type></type>
+    <title></title>
+    <abstract></abstract>
+    <links/>
+    <author></author>
+    <creation>2019-05-15T14:23:27</creation>
+  </projectMetadata>
+  <Annotations/>
+  <Layouts/>
+</qgis>
diff --git a/tests/testdata/qgis_server/test_project_wms_invalid_layers.qgs b/tests/testdata/qgis_server/test_project_wms_invalid_layers.qgs
new file mode 100644
index 0000000000..1f8d252df6
--- /dev/null
+++ b/tests/testdata/qgis_server/test_project_wms_invalid_layers.qgs
@@ -0,0 +1,1941 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis projectname="QGIS Server - Grouped Layer" version="3.5.0-Master">
+  <homePath path=""/>
+  <title>QGIS Server - Grouped Layer</title>
+  <autotransaction active="0"/>
+  <evaluateDefaultValues active="0"/>
+  <trust active="0"/>
+  <projectCrs>
+    <spatialrefsys>
+      <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+      <srsid>2105</srsid>
+      <srid>25832</srid>
+      <authid>EPSG:25832</authid>
+      <description>ETRS89 / UTM zone 32N</description>
+      <projectionacronym>utm</projectionacronym>
+      <ellipsoidacronym>GRS80</ellipsoidacronym>
+      <geographicflag>false</geographicflag>
+    </spatialrefsys>
+  </projectCrs>
+  <layer-tree-group>
+    <customproperties/>
+    <layer-tree-group name="city and district boundaries" checked="Qt::Checked" expanded="1">
+      <customproperties/>
+      <layer-tree-layer name="cdb_lines" source="./test_project_wms_grouped_layers.gpkg|layername=cdb_lines" checked="Qt::Checked" providerKey="ogr" id="cdb_lines_3f5c3c6d_db6d_4681_9291_7109f8d69f8b" expanded="1">
+        <customproperties/>
+      </layer-tree-layer>
+      <layer-tree-layer name="cdb_labels" source="./test_project_wms_grouped_layers.gpkg|layername=cdb_labels" checked="Qt::Checked" providerKey="ogr" id="cdb_labels_8ee74af8_e7ba_4d80_9e0d_5b0b956d3daf" expanded="1">
+        <customproperties/>
+      </layer-tree-layer>
+    </layer-tree-group>
+    <layer-tree-group name="areas and symbols" checked="Qt::Checked" expanded="1">
+      <customproperties/>
+      <layer-tree-layer name="as_symbols" source="./test_project_wms_grouped_layers.gpkg|layername=as_symbols" checked="Qt::Checked" providerKey="ogr" id="as_symbols_3a1cdeef_9082_4d07_be5c_47c956bd7e76" expanded="1">
+        <customproperties/>
+      </layer-tree-layer>
+      <layer-tree-layer name="as_areas" source="./test_project_wms_grouped_layers.gpkg|layername=as_areas" checked="Qt::Checked" providerKey="ogr" id="as_areas_bbe3c71b_356c_49f5_9fc2_ae771bcdd467" expanded="1">
+        <customproperties/>
+      </layer-tree-layer>
+    </layer-tree-group>
+    <layer-tree-layer name="osm" source="GPKG:/home/ale/dev/QGIS/tests/testdata/qgis_server/test_project_wms_grouped_layers.gpkg:osm" checked="Qt::Checked" providerKey="gdal" id="osm_85c8eb94_b6fa_437b_b91a_7816ef2e2243" expanded="1">
+      <customproperties/>
+    </layer-tree-layer>
+    <custom-order enabled="0">
+      <item>osm_85c8eb94_b6fa_437b_b91a_7816ef2e2243</item>
+      <item>cdb_labels_8ee74af8_e7ba_4d80_9e0d_5b0b956d3daf</item>
+      <item>cdb_lines_3f5c3c6d_db6d_4681_9291_7109f8d69f8b</item>
+      <item>as_areas_bbe3c71b_356c_49f5_9fc2_ae771bcdd467</item>
+      <item>as_symbols_3a1cdeef_9082_4d07_be5c_47c956bd7e76</item>
+    </custom-order>
+  </layer-tree-group>
+  <snapping-settings enabled="0" mode="2" unit="1" type="1" tolerance="12" intersection-snapping="0">
+    <individual-layer-settings>
+      <layer-setting enabled="0" type="1" tolerance="12" id="as_areas_bbe3c71b_356c_49f5_9fc2_ae771bcdd467" units="1"/>
+      <layer-setting enabled="0" type="1" tolerance="12" id="cdb_lines_3f5c3c6d_db6d_4681_9291_7109f8d69f8b" units="1"/>
+      <layer-setting enabled="0" type="1" tolerance="12" id="cdb_labels_8ee74af8_e7ba_4d80_9e0d_5b0b956d3daf" units="1"/>
+      <layer-setting enabled="0" type="1" tolerance="12" id="as_symbols_3a1cdeef_9082_4d07_be5c_47c956bd7e76" units="1"/>
+    </individual-layer-settings>
+  </snapping-settings>
+  <relations/>
+  <mapcanvas name="theMapCanvas" annotationsVisible="1">
+    <units>meters</units>
+    <extent>
+      <xmin>611130.7508374999742955</xmin>
+      <ymin>5808188.16393684130162001</ymin>
+      <xmax>623514.4366625000257045</xmax>
+      <ymax>5814318.83606315869837999</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+        <srsid>2105</srsid>
+        <srid>25832</srid>
+        <authid>EPSG:25832</authid>
+        <description>ETRS89 / UTM zone 32N</description>
+        <projectionacronym>utm</projectionacronym>
+        <ellipsoidacronym>GRS80</ellipsoidacronym>
+        <geographicflag>false</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+  </mapcanvas>
+  <projectModels/>
+  <legend updateDrawingOrder="true">
+    <legendgroup name="city and district boundaries" checked="Qt::Checked" open="true">
+      <legendlayer name="cdb_lines" drawingOrder="-1" checked="Qt::Checked" open="true" showFeatureCount="0">
+        <filegroup hidden="false" open="true">
+          <legendlayerfile isInOverview="0" layerid="cdb_lines_3f5c3c6d_db6d_4681_9291_7109f8d69f8b" visible="1"/>
+        </filegroup>
+      </legendlayer>
+      <legendlayer name="cdb_labels" drawingOrder="-1" checked="Qt::Checked" open="true" showFeatureCount="0">
+        <filegroup hidden="false" open="true">
+          <legendlayerfile isInOverview="0" layerid="cdb_labels_8ee74af8_e7ba_4d80_9e0d_5b0b956d3daf" visible="1"/>
+        </filegroup>
+      </legendlayer>
+    </legendgroup>
+    <legendgroup name="areas and symbols" checked="Qt::Checked" open="true">
+      <legendlayer name="as_symbols" drawingOrder="-1" checked="Qt::Checked" open="true" showFeatureCount="0">
+        <filegroup hidden="false" open="true">
+          <legendlayerfile isInOverview="0" layerid="as_symbols_3a1cdeef_9082_4d07_be5c_47c956bd7e76" visible="1"/>
+        </filegroup>
+      </legendlayer>
+      <legendlayer name="as_areas" drawingOrder="-1" checked="Qt::Checked" open="true" showFeatureCount="0">
+        <filegroup hidden="false" open="true">
+          <legendlayerfile isInOverview="0" layerid="as_areas_bbe3c71b_356c_49f5_9fc2_ae771bcdd467" visible="1"/>
+        </filegroup>
+      </legendlayer>
+    </legendgroup>
+    <legendlayer name="osm" drawingOrder="-1" checked="Qt::Checked" open="true" showFeatureCount="0">
+      <filegroup hidden="false" open="true">
+        <legendlayerfile isInOverview="0" layerid="osm_85c8eb94_b6fa_437b_b91a_7816ef2e2243" visible="1"/>
+      </filegroup>
+    </legendlayer>
+  </legend>
+  <mapViewDocks/>
+  <mapViewDocks3D/>
+  <mapcanvas name="mAreaCanvas" annotationsVisible="1">
+    <units>meters</units>
+    <extent>
+      <xmin>613671.31718749995343387</xmin>
+      <ymin>5808474.67499999981373549</ymin>
+      <xmax>620973.87031250004656613</xmax>
+      <ymax>5814032.32500000018626451</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+        <srsid>2105</srsid>
+        <srid>25832</srid>
+        <authid>EPSG:25832</authid>
+        <description>ETRS89 / UTM zone 32N</description>
+        <projectionacronym>utm</projectionacronym>
+        <ellipsoidacronym>GRS80</ellipsoidacronym>
+        <geographicflag>false</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+  </mapcanvas>
+  <mapcanvas name="mAreaCanvas" annotationsVisible="1">
+    <units>meters</units>
+    <extent>
+      <xmin>613671.31718749995343387</xmin>
+      <ymin>5808474.67499999981373549</ymin>
+      <xmax>620973.87031250004656613</xmax>
+      <ymax>5814032.32500000018626451</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+        <srsid>2105</srsid>
+        <srid>25832</srid>
+        <authid>EPSG:25832</authid>
+        <description>ETRS89 / UTM zone 32N</description>
+        <projectionacronym>utm</projectionacronym>
+        <ellipsoidacronym>GRS80</ellipsoidacronym>
+        <geographicflag>false</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+  </mapcanvas>
+  <mapcanvas name="mAreaCanvas" annotationsVisible="1">
+    <units>meters</units>
+    <extent>
+      <xmin>613671.31718749995343387</xmin>
+      <ymin>5808474.67499999981373549</ymin>
+      <xmax>620973.87031250004656613</xmax>
+      <ymax>5814032.32500000018626451</ymax>
+    </extent>
+    <rotation>0</rotation>
+    <destinationsrs>
+      <spatialrefsys>
+        <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+        <srsid>2105</srsid>
+        <srid>25832</srid>
+        <authid>EPSG:25832</authid>
+        <description>ETRS89 / UTM zone 32N</description>
+        <projectionacronym>utm</projectionacronym>
+        <ellipsoidacronym>GRS80</ellipsoidacronym>
+        <geographicflag>false</geographicflag>
+      </spatialrefsys>
+    </destinationsrs>
+    <rendermaptile>0</rendermaptile>
+  </mapcanvas>
+  <projectlayers>
+    <maplayer hasScaleBasedVisibilityFlag="0" simplifyDrawingHints="1" refreshOnNotifyEnabled="0" labelsEnabled="0" simplifyLocal="1" readOnly="0" autoRefreshTime="0" geometry="Polygon" maxScale="0" refreshOnNotifyMessage="" simplifyDrawingTol="1" styleCategories="AllStyleCategories" simplifyAlgorithm="0" autoRefreshEnabled="0" type="vector" simplifyMaxScale="1" minScale="1e+8">
+      <extent>
+        <xmin>614440.5625</xmin>
+        <ymin>5808607</ymin>
+        <xmax>618892</xmax>
+        <ymax>5812990</ymax>
+      </extent>
+      <id>as_areas_bbe3c71b_356c_49f5_9fc2_ae771bcdd467</id>
+      <datasource>./foo.gpkg|layername=as_areas</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>as_areas</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+          <srsid>2105</srsid>
+          <srid>25832</srid>
+          <authid>EPSG:25832</authid>
+          <description>ETRS89 / UTM zone 32N</description>
+          <projectionacronym>utm</projectionacronym>
+          <ellipsoidacronym>GRS80</ellipsoidacronym>
+          <geographicflag>false</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type></type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 forceraster="0" type="singleSymbol" enableorderby="0" symbollevels="0">
+        <symbols>
+          <symbol name="0" alpha="1" type="fill" clip_to_extent="1" force_rhr="0">
+            <layer locked="0" enabled="1" pass="0" class="SimpleFill">
+              <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+              <prop v="183,72,75,255" k="color"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="35,35,35,255" k="outline_color"/>
+              <prop v="solid" k="outline_style"/>
+              <prop v="0.26" k="outline_width"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="solid" k="style"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option name="name" type="QString" value=""/>
+                  <Option name="properties"/>
+                  <Option name="type" type="QString" value="collection"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties/>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="fid">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="gid">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="datum">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="bearbeiter">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="veranstaltung">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="beschriftung">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="name">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="flaechentyp">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="farbe">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="schraff_width">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="schraff_width_prt">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="schraff_size">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="schraff_size_prt">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="schraff_winkel">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="umrissfarbe">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="umrisstyp">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="umrissstaerke">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="umrissstaerke_prt">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="umfang">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="flaeche">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="bemerkung">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="last_change">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias name="" index="0" field="fid"/>
+        <alias name="" index="1" field="gid"/>
+        <alias name="" index="2" field="datum"/>
+        <alias name="" index="3" field="bearbeiter"/>
+        <alias name="" index="4" field="veranstaltung"/>
+        <alias name="" index="5" field="beschriftung"/>
+        <alias name="" index="6" field="name"/>
+        <alias name="" index="7" field="flaechentyp"/>
+        <alias name="" index="8" field="farbe"/>
+        <alias name="" index="9" field="schraff_width"/>
+        <alias name="" index="10" field="schraff_width_prt"/>
+        <alias name="" index="11" field="schraff_size"/>
+        <alias name="" index="12" field="schraff_size_prt"/>
+        <alias name="" index="13" field="schraff_winkel"/>
+        <alias name="" index="14" field="umrissfarbe"/>
+        <alias name="" index="15" field="umrisstyp"/>
+        <alias name="" index="16" field="umrissstaerke"/>
+        <alias name="" index="17" field="umrissstaerke_prt"/>
+        <alias name="" index="18" field="umfang"/>
+        <alias name="" index="19" field="flaeche"/>
+        <alias name="" index="20" field="bemerkung"/>
+        <alias name="" index="21" field="last_change"/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default applyOnUpdate="0" field="fid" expression=""/>
+        <default applyOnUpdate="0" field="gid" expression=""/>
+        <default applyOnUpdate="0" field="datum" expression=""/>
+        <default applyOnUpdate="0" field="bearbeiter" expression=""/>
+        <default applyOnUpdate="0" field="veranstaltung" expression=""/>
+        <default applyOnUpdate="0" field="beschriftung" expression=""/>
+        <default applyOnUpdate="0" field="name" expression=""/>
+        <default applyOnUpdate="0" field="flaechentyp" expression=""/>
+        <default applyOnUpdate="0" field="farbe" expression=""/>
+        <default applyOnUpdate="0" field="schraff_width" expression=""/>
+        <default applyOnUpdate="0" field="schraff_width_prt" expression=""/>
+        <default applyOnUpdate="0" field="schraff_size" expression=""/>
+        <default applyOnUpdate="0" field="schraff_size_prt" expression=""/>
+        <default applyOnUpdate="0" field="schraff_winkel" expression=""/>
+        <default applyOnUpdate="0" field="umrissfarbe" expression=""/>
+        <default applyOnUpdate="0" field="umrisstyp" expression=""/>
+        <default applyOnUpdate="0" field="umrissstaerke" expression=""/>
+        <default applyOnUpdate="0" field="umrissstaerke_prt" expression=""/>
+        <default applyOnUpdate="0" field="umfang" expression=""/>
+        <default applyOnUpdate="0" field="flaeche" expression=""/>
+        <default applyOnUpdate="0" field="bemerkung" expression=""/>
+        <default applyOnUpdate="0" field="last_change" expression=""/>
+      </defaults>
+      <constraints>
+        <constraint unique_strength="1" exp_strength="0" constraints="3" notnull_strength="1" field="fid"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="gid"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="datum"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="bearbeiter"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="veranstaltung"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="beschriftung"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="name"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="flaechentyp"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="farbe"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="schraff_width"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="schraff_width_prt"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="schraff_size"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="schraff_size_prt"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="schraff_winkel"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="umrissfarbe"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="umrisstyp"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="umrissstaerke"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="umrissstaerke_prt"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="umfang"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="flaeche"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="bemerkung"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="last_change"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint exp="" desc="" field="fid"/>
+        <constraint exp="" desc="" field="gid"/>
+        <constraint exp="" desc="" field="datum"/>
+        <constraint exp="" desc="" field="bearbeiter"/>
+        <constraint exp="" desc="" field="veranstaltung"/>
+        <constraint exp="" desc="" field="beschriftung"/>
+        <constraint exp="" desc="" field="name"/>
+        <constraint exp="" desc="" field="flaechentyp"/>
+        <constraint exp="" desc="" field="farbe"/>
+        <constraint exp="" desc="" field="schraff_width"/>
+        <constraint exp="" desc="" field="schraff_width_prt"/>
+        <constraint exp="" desc="" field="schraff_size"/>
+        <constraint exp="" desc="" field="schraff_size_prt"/>
+        <constraint exp="" desc="" field="schraff_winkel"/>
+        <constraint exp="" desc="" field="umrissfarbe"/>
+        <constraint exp="" desc="" field="umrisstyp"/>
+        <constraint exp="" desc="" field="umrissstaerke"/>
+        <constraint exp="" desc="" field="umrissstaerke_prt"/>
+        <constraint exp="" desc="" field="umfang"/>
+        <constraint exp="" desc="" field="flaeche"/>
+        <constraint exp="" desc="" field="bemerkung"/>
+        <constraint exp="" desc="" field="last_change"/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" sortOrder="0" actionWidgetStyle="dropDown">
+        <columns/>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable/>
+      <labelOnTop/>
+      <widgets/>
+      <previewExpression></previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+    <maplayer hasScaleBasedVisibilityFlag="0" simplifyDrawingHints="1" refreshOnNotifyEnabled="0" labelsEnabled="0" simplifyLocal="1" readOnly="0" autoRefreshTime="0" geometry="Point" maxScale="0" refreshOnNotifyMessage="" simplifyDrawingTol="1" styleCategories="AllStyleCategories" simplifyAlgorithm="0" autoRefreshEnabled="0" type="vector" simplifyMaxScale="1" minScale="1e+8">
+      <extent>
+        <xmin>613845.1875</xmin>
+        <ymin>5810420</ymin>
+        <xmax>620800</xmax>
+        <ymax>5813900</ymax>
+      </extent>
+      <id>as_symbols_3a1cdeef_9082_4d07_be5c_47c956bd7e76</id>
+      <datasource>./foo.gpkg|layername=as_symbols</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>as_symbols</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+          <srsid>2105</srsid>
+          <srid>25832</srid>
+          <authid>EPSG:25832</authid>
+          <description>ETRS89 / UTM zone 32N</description>
+          <projectionacronym>utm</projectionacronym>
+          <ellipsoidacronym>GRS80</ellipsoidacronym>
+          <geographicflag>false</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type></type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 forceraster="0" type="singleSymbol" enableorderby="0" symbollevels="0">
+        <symbols>
+          <symbol name="0" alpha="1" type="marker" clip_to_extent="1" force_rhr="0">
+            <layer locked="0" enabled="1" pass="0" class="SimpleMarker">
+              <prop v="0" k="angle"/>
+              <prop v="0,192,0,255" k="color"/>
+              <prop v="1" k="horizontal_anchor_point"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="star" k="name"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="0,0,0,255" k="outline_color"/>
+              <prop v="solid" k="outline_style"/>
+              <prop v="0" k="outline_width"/>
+              <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="area" k="scale_method"/>
+              <prop v="4" k="size"/>
+              <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+              <prop v="MM" k="size_unit"/>
+              <prop v="1" k="vertical_anchor_point"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option name="name" type="QString" value=""/>
+                  <Option name="properties"/>
+                  <Option name="type" type="QString" value="collection"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties/>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="fid">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="gid">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="datum">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="bearbeiter">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="veranstaltung">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="beschriftung">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="name">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="form">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="groesse">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="groesse_red">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="winkel">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="farbe">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="bemerkung">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="last_change">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias name="" index="0" field="fid"/>
+        <alias name="" index="1" field="gid"/>
+        <alias name="" index="2" field="datum"/>
+        <alias name="" index="3" field="bearbeiter"/>
+        <alias name="" index="4" field="veranstaltung"/>
+        <alias name="" index="5" field="beschriftung"/>
+        <alias name="" index="6" field="name"/>
+        <alias name="" index="7" field="form"/>
+        <alias name="" index="8" field="groesse"/>
+        <alias name="" index="9" field="groesse_red"/>
+        <alias name="" index="10" field="winkel"/>
+        <alias name="" index="11" field="farbe"/>
+        <alias name="" index="12" field="bemerkung"/>
+        <alias name="" index="13" field="last_change"/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default applyOnUpdate="0" field="fid" expression=""/>
+        <default applyOnUpdate="0" field="gid" expression=""/>
+        <default applyOnUpdate="0" field="datum" expression=""/>
+        <default applyOnUpdate="0" field="bearbeiter" expression=""/>
+        <default applyOnUpdate="0" field="veranstaltung" expression=""/>
+        <default applyOnUpdate="0" field="beschriftung" expression=""/>
+        <default applyOnUpdate="0" field="name" expression=""/>
+        <default applyOnUpdate="0" field="form" expression=""/>
+        <default applyOnUpdate="0" field="groesse" expression=""/>
+        <default applyOnUpdate="0" field="groesse_red" expression=""/>
+        <default applyOnUpdate="0" field="winkel" expression=""/>
+        <default applyOnUpdate="0" field="farbe" expression=""/>
+        <default applyOnUpdate="0" field="bemerkung" expression=""/>
+        <default applyOnUpdate="0" field="last_change" expression=""/>
+      </defaults>
+      <constraints>
+        <constraint unique_strength="1" exp_strength="0" constraints="3" notnull_strength="1" field="fid"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="gid"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="datum"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="bearbeiter"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="veranstaltung"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="beschriftung"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="name"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="form"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="groesse"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="groesse_red"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="winkel"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="farbe"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="bemerkung"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="last_change"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint exp="" desc="" field="fid"/>
+        <constraint exp="" desc="" field="gid"/>
+        <constraint exp="" desc="" field="datum"/>
+        <constraint exp="" desc="" field="bearbeiter"/>
+        <constraint exp="" desc="" field="veranstaltung"/>
+        <constraint exp="" desc="" field="beschriftung"/>
+        <constraint exp="" desc="" field="name"/>
+        <constraint exp="" desc="" field="form"/>
+        <constraint exp="" desc="" field="groesse"/>
+        <constraint exp="" desc="" field="groesse_red"/>
+        <constraint exp="" desc="" field="winkel"/>
+        <constraint exp="" desc="" field="farbe"/>
+        <constraint exp="" desc="" field="bemerkung"/>
+        <constraint exp="" desc="" field="last_change"/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" sortOrder="0" actionWidgetStyle="dropDown">
+        <columns/>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable/>
+      <labelOnTop/>
+      <widgets/>
+      <previewExpression></previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+    <maplayer hasScaleBasedVisibilityFlag="0" simplifyDrawingHints="0" refreshOnNotifyEnabled="0" labelsEnabled="1" simplifyLocal="1" readOnly="0" autoRefreshTime="0" geometry="Point" maxScale="0" refreshOnNotifyMessage="" simplifyDrawingTol="1" styleCategories="AllStyleCategories" simplifyAlgorithm="0" autoRefreshEnabled="0" type="vector" simplifyMaxScale="1" minScale="1e+8">
+      <extent>
+        <xmin>613794.8125</xmin>
+        <ymin>5800447</ymin>
+        <xmax>626894.25</xmax>
+        <ymax>5815374.5</ymax>
+      </extent>
+      <id>cdb_labels_8ee74af8_e7ba_4d80_9e0d_5b0b956d3daf</id>
+      <datasource>./foo.gpkg|layername=cdb_labels</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>cdb_labels</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+          <srsid>2105</srsid>
+          <srid>25832</srid>
+          <authid>EPSG:25832</authid>
+          <description>ETRS89 / UTM zone 32N</description>
+          <projectionacronym>utm</projectionacronym>
+          <ellipsoidacronym>GRS80</ellipsoidacronym>
+          <geographicflag>false</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type></type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 forceraster="0" type="singleSymbol" enableorderby="0" symbollevels="0">
+        <symbols>
+          <symbol name="0" alpha="1" type="marker" clip_to_extent="1" force_rhr="0">
+            <layer locked="0" enabled="1" pass="0" class="SimpleMarker">
+              <prop v="0" k="angle"/>
+              <prop v="225,89,137,255" k="color"/>
+              <prop v="1" k="horizontal_anchor_point"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="circle" k="name"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="35,35,35,255" k="outline_color"/>
+              <prop v="no" k="outline_style"/>
+              <prop v="0" k="outline_width"/>
+              <prop v="3x:0,0,0,0,0,0" k="outline_width_map_unit_scale"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="diameter" k="scale_method"/>
+              <prop v="0" k="size"/>
+              <prop v="3x:0,0,0,0,0,0" k="size_map_unit_scale"/>
+              <prop v="MM" k="size_unit"/>
+              <prop v="1" k="vertical_anchor_point"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option name="name" type="QString" value=""/>
+                  <Option name="properties"/>
+                  <Option name="type" type="QString" value="collection"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <labeling type="simple">
+        <settings>
+          <text-style blendMode="0" fontWeight="75" isExpression="0" namedStyle="Bold" fontFamily="Ubuntu" previewBkgrdColor="#ffffff" fontLetterSpacing="0" fontStrikeout="0" multilineHeight="1" fontSize="14" fontCapitals="0" textOpacity="1" fontUnderline="0" fontWordSpacing="0" useSubstitutions="0" fontSizeUnit="Point" fontItalic="0" fieldName="NAME" fontSizeMapUnitScale="3x:0,0,0,0,0,0" textColor="0,0,149,255">
+            <text-buffer bufferColor="255,255,255,255" bufferDraw="1" bufferNoFill="0" bufferOpacity="1" bufferBlendMode="0" bufferSize="0.75" bufferSizeMapUnitScale="3x:0,0,0,0,0,0" bufferSizeUnits="MM" bufferJoinStyle="64"/>
+            <background shapeBorderColor="128,128,128,255" shapeSVGFile="" shapeRadiiX="0" shapeOffsetMapUnitScale="3x:0,0,0,0,0,0" shapeSizeType="0" shapeBorderWidth="0" shapeBorderWidthUnit="MM" shapeRadiiUnit="MM" shapeOffsetY="0" shapeRotation="0" shapeSizeY="0" shapeFillColor="255,255,255,255" shapeBorderWidthMapUnitScale="3x:0,0,0,0,0,0" shapeJoinStyle="64" shapeSizeMapUnitScale="3x:0,0,0,0,0,0" shapeOffsetX="0" shapeSizeX="0" shapeDraw="0" shapeRadiiMapUnitScale="3x:0,0,0,0,0,0" shapeBlendMode="0" shapeRadiiY="0" shapeRotationType="0" shapeOpacity="1" shapeSizeUnit="MM" shapeType="0" shapeOffsetUnit="MM"/>
+            <shadow shadowOffsetMapUnitScale="3x:0,0,0,0,0,0" shadowUnder="0" shadowScale="100" shadowRadiusAlphaOnly="0" shadowRadiusUnit="MM" shadowBlendMode="6" shadowRadiusMapUnitScale="3x:0,0,0,0,0,0" shadowOffsetAngle="135" shadowOffsetDist="1" shadowColor="0,0,0,255" shadowOffsetUnit="MM" shadowDraw="0" shadowOpacity="0.7" shadowOffsetGlobal="1" shadowRadius="1.5"/>
+            <substitutions/>
+          </text-style>
+          <text-format autoWrapLength="0" placeDirectionSymbol="0" decimals="3" multilineAlign="0" rightDirectionSymbol=">" plussign="0" reverseDirectionSymbol="0" wrapChar="" leftDirectionSymbol="&lt;" useMaxLineLengthForAutoWrap="1" formatNumbers="0" addDirectionSymbol="0"/>
+          <placement placement="1" priority="5" preserveRotation="1" maxCurvedCharAngleOut="-20" distMapUnitScale="3x:0,0,0,0,0,0" repeatDistance="0" centroidWhole="0" xOffset="0" offsetType="0" repeatDistanceUnits="MM" repeatDistanceMapUnitScale="3x:0,0,0,0,0,0" yOffset="0" centroidInside="1" placementFlags="0" rotationAngle="0" labelOffsetMapUnitScale="3x:0,0,0,0,0,0" quadOffset="4" offsetUnits="MM" fitInPolygonOnly="0" distUnits="MM" maxCurvedCharAngleIn="20" predefinedPositionOrder="TR,TL,BR,BL,R,L,TSR,BSR" dist="0"/>
+          <rendering minFeatureSize="0" labelPerPart="0" scaleVisibility="0" displayAll="1" scaleMax="10000000" obstacleFactor="1" upsidedownLabels="0" fontMinPixelSize="3" zIndex="0" mergeLines="0" fontMaxPixelSize="10000" fontLimitPixelSize="0" obstacleType="0" limitNumLabels="0" drawLabels="1" obstacle="1" scaleMin="1" maxNumLabels="2000"/>
+          <dd_properties>
+            <Option type="Map">
+              <Option name="name" type="QString" value=""/>
+              <Option name="properties"/>
+              <Option name="type" type="QString" value="collection"/>
+            </Option>
+          </dd_properties>
+        </settings>
+      </labeling>
+      <customproperties>
+        <property value="0" key="embeddedWidgets/count"/>
+        <property key="variableNames"/>
+        <property key="variableValues"/>
+      </customproperties>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
+        <DiagramCategory lineSizeScale="3x:0,0,0,0,0,0" scaleBasedVisibility="0" scaleDependency="Area" sizeScale="3x:0,0,0,0,0,0" penAlpha="255" penColor="#000000" maxScaleDenominator="1e+8" rotationOffset="270" backgroundAlpha="255" backgroundColor="#ffffff" enabled="0" barWidth="5" lineSizeType="MM" labelPlacementMethod="XHeight" diagramOrientation="Up" opacity="1" penWidth="0" minScaleDenominator="0" minimumSize="0" height="15" width="15" sizeType="MM">
+          <fontProperties style="" description="Noto Sans,9,-1,5,50,0,0,0,0,0"/>
+          <attribute color="#000000" label="" field=""/>
+        </DiagramCategory>
+      </SingleCategoryDiagramRenderer>
+      <DiagramLayerSettings linePlacementFlags="18" dist="0" priority="0" zIndex="0" showAll="1" placement="0" obstacle="0">
+        <properties>
+          <Option type="Map">
+            <Option name="name" type="QString" value=""/>
+            <Option name="properties"/>
+            <Option name="type" type="QString" value="collection"/>
+          </Option>
+        </properties>
+      </DiagramLayerSettings>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="fid">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="AREA">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="PERIMETER">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="STADTTEILE">
+          <editWidget type="Range">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="STADTTEI_1">
+          <editWidget type="Range">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="S_A_">
+          <editWidget type="Range">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="S_A_ID">
+          <editWidget type="Range">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="O_NAME">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="ORTSTEIL">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="STADTTEIL">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="OT_SCHL">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="GEM_SCHL">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="ZVS">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="NAME">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="PLZ">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="KERNSTADT_">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="ORTSRATSBE">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="PLG_KITA">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="PLG_BERATU">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="PLG_JUFOE">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="VERFLECHTU">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="FUNKTIONSB">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="T_DATUM">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Impfbez_Nr">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="Impfzentru">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias name="" index="0" field="fid"/>
+        <alias name="" index="1" field="AREA"/>
+        <alias name="" index="2" field="PERIMETER"/>
+        <alias name="" index="3" field="STADTTEILE"/>
+        <alias name="" index="4" field="STADTTEI_1"/>
+        <alias name="" index="5" field="S_A_"/>
+        <alias name="" index="6" field="S_A_ID"/>
+        <alias name="" index="7" field="O_NAME"/>
+        <alias name="" index="8" field="ORTSTEIL"/>
+        <alias name="" index="9" field="STADTTEIL"/>
+        <alias name="" index="10" field="OT_SCHL"/>
+        <alias name="" index="11" field="GEM_SCHL"/>
+        <alias name="" index="12" field="ZVS"/>
+        <alias name="" index="13" field="NAME"/>
+        <alias name="" index="14" field="PLZ"/>
+        <alias name="" index="15" field="KERNSTADT_"/>
+        <alias name="" index="16" field="ORTSRATSBE"/>
+        <alias name="" index="17" field="PLG_KITA"/>
+        <alias name="" index="18" field="PLG_BERATU"/>
+        <alias name="" index="19" field="PLG_JUFOE"/>
+        <alias name="" index="20" field="VERFLECHTU"/>
+        <alias name="" index="21" field="FUNKTIONSB"/>
+        <alias name="" index="22" field="T_DATUM"/>
+        <alias name="" index="23" field="Impfbez_Nr"/>
+        <alias name="" index="24" field="Impfzentru"/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default applyOnUpdate="0" field="fid" expression=""/>
+        <default applyOnUpdate="0" field="AREA" expression=""/>
+        <default applyOnUpdate="0" field="PERIMETER" expression=""/>
+        <default applyOnUpdate="0" field="STADTTEILE" expression=""/>
+        <default applyOnUpdate="0" field="STADTTEI_1" expression=""/>
+        <default applyOnUpdate="0" field="S_A_" expression=""/>
+        <default applyOnUpdate="0" field="S_A_ID" expression=""/>
+        <default applyOnUpdate="0" field="O_NAME" expression=""/>
+        <default applyOnUpdate="0" field="ORTSTEIL" expression=""/>
+        <default applyOnUpdate="0" field="STADTTEIL" expression=""/>
+        <default applyOnUpdate="0" field="OT_SCHL" expression=""/>
+        <default applyOnUpdate="0" field="GEM_SCHL" expression=""/>
+        <default applyOnUpdate="0" field="ZVS" expression=""/>
+        <default applyOnUpdate="0" field="NAME" expression=""/>
+        <default applyOnUpdate="0" field="PLZ" expression=""/>
+        <default applyOnUpdate="0" field="KERNSTADT_" expression=""/>
+        <default applyOnUpdate="0" field="ORTSRATSBE" expression=""/>
+        <default applyOnUpdate="0" field="PLG_KITA" expression=""/>
+        <default applyOnUpdate="0" field="PLG_BERATU" expression=""/>
+        <default applyOnUpdate="0" field="PLG_JUFOE" expression=""/>
+        <default applyOnUpdate="0" field="VERFLECHTU" expression=""/>
+        <default applyOnUpdate="0" field="FUNKTIONSB" expression=""/>
+        <default applyOnUpdate="0" field="T_DATUM" expression=""/>
+        <default applyOnUpdate="0" field="Impfbez_Nr" expression=""/>
+        <default applyOnUpdate="0" field="Impfzentru" expression=""/>
+      </defaults>
+      <constraints>
+        <constraint unique_strength="1" exp_strength="0" constraints="3" notnull_strength="1" field="fid"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="AREA"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="PERIMETER"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="STADTTEILE"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="STADTTEI_1"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="S_A_"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="S_A_ID"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="O_NAME"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="ORTSTEIL"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="STADTTEIL"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="OT_SCHL"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="GEM_SCHL"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="ZVS"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="NAME"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="PLZ"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="KERNSTADT_"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="ORTSRATSBE"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="PLG_KITA"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="PLG_BERATU"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="PLG_JUFOE"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="VERFLECHTU"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="FUNKTIONSB"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="T_DATUM"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="Impfbez_Nr"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="Impfzentru"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint exp="" desc="" field="fid"/>
+        <constraint exp="" desc="" field="AREA"/>
+        <constraint exp="" desc="" field="PERIMETER"/>
+        <constraint exp="" desc="" field="STADTTEILE"/>
+        <constraint exp="" desc="" field="STADTTEI_1"/>
+        <constraint exp="" desc="" field="S_A_"/>
+        <constraint exp="" desc="" field="S_A_ID"/>
+        <constraint exp="" desc="" field="O_NAME"/>
+        <constraint exp="" desc="" field="ORTSTEIL"/>
+        <constraint exp="" desc="" field="STADTTEIL"/>
+        <constraint exp="" desc="" field="OT_SCHL"/>
+        <constraint exp="" desc="" field="GEM_SCHL"/>
+        <constraint exp="" desc="" field="ZVS"/>
+        <constraint exp="" desc="" field="NAME"/>
+        <constraint exp="" desc="" field="PLZ"/>
+        <constraint exp="" desc="" field="KERNSTADT_"/>
+        <constraint exp="" desc="" field="ORTSRATSBE"/>
+        <constraint exp="" desc="" field="PLG_KITA"/>
+        <constraint exp="" desc="" field="PLG_BERATU"/>
+        <constraint exp="" desc="" field="PLG_JUFOE"/>
+        <constraint exp="" desc="" field="VERFLECHTU"/>
+        <constraint exp="" desc="" field="FUNKTIONSB"/>
+        <constraint exp="" desc="" field="T_DATUM"/>
+        <constraint exp="" desc="" field="Impfbez_Nr"/>
+        <constraint exp="" desc="" field="Impfzentru"/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" sortOrder="0" actionWidgetStyle="dropDown">
+        <columns>
+          <column name="fid" type="field" hidden="0" width="-1"/>
+          <column name="AREA" type="field" hidden="0" width="-1"/>
+          <column name="PERIMETER" type="field" hidden="0" width="-1"/>
+          <column name="STADTTEILE" type="field" hidden="0" width="-1"/>
+          <column name="STADTTEI_1" type="field" hidden="0" width="-1"/>
+          <column name="S_A_" type="field" hidden="0" width="-1"/>
+          <column name="S_A_ID" type="field" hidden="0" width="-1"/>
+          <column name="O_NAME" type="field" hidden="0" width="-1"/>
+          <column name="ORTSTEIL" type="field" hidden="0" width="-1"/>
+          <column name="STADTTEIL" type="field" hidden="0" width="-1"/>
+          <column name="OT_SCHL" type="field" hidden="0" width="-1"/>
+          <column name="GEM_SCHL" type="field" hidden="0" width="-1"/>
+          <column name="ZVS" type="field" hidden="0" width="-1"/>
+          <column name="NAME" type="field" hidden="0" width="-1"/>
+          <column name="PLZ" type="field" hidden="0" width="-1"/>
+          <column name="KERNSTADT_" type="field" hidden="0" width="-1"/>
+          <column name="ORTSRATSBE" type="field" hidden="0" width="-1"/>
+          <column name="PLG_KITA" type="field" hidden="0" width="-1"/>
+          <column name="PLG_BERATU" type="field" hidden="0" width="-1"/>
+          <column name="PLG_JUFOE" type="field" hidden="0" width="-1"/>
+          <column name="VERFLECHTU" type="field" hidden="0" width="-1"/>
+          <column name="FUNKTIONSB" type="field" hidden="0" width="-1"/>
+          <column name="T_DATUM" type="field" hidden="0" width="-1"/>
+          <column name="Impfbez_Nr" type="field" hidden="0" width="-1"/>
+          <column name="Impfzentru" type="field" hidden="0" width="-1"/>
+          <column type="actions" hidden="1" width="-1"/>
+        </columns>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable>
+        <field name="AREA" editable="1"/>
+        <field name="FUNKTIONSB" editable="1"/>
+        <field name="GEM_SCHL" editable="1"/>
+        <field name="Impfbez_Nr" editable="1"/>
+        <field name="Impfzentru" editable="1"/>
+        <field name="KERNSTADT_" editable="1"/>
+        <field name="NAME" editable="1"/>
+        <field name="ORTSRATSBE" editable="1"/>
+        <field name="ORTSTEIL" editable="1"/>
+        <field name="OT_SCHL" editable="1"/>
+        <field name="O_NAME" editable="1"/>
+        <field name="PERIMETER" editable="1"/>
+        <field name="PLG_BERATU" editable="1"/>
+        <field name="PLG_JUFOE" editable="1"/>
+        <field name="PLG_KITA" editable="1"/>
+        <field name="PLZ" editable="1"/>
+        <field name="STADTTEIL" editable="1"/>
+        <field name="STADTTEILE" editable="1"/>
+        <field name="STADTTEI_1" editable="1"/>
+        <field name="S_A_" editable="1"/>
+        <field name="S_A_ID" editable="1"/>
+        <field name="T_DATUM" editable="1"/>
+        <field name="VERFLECHTU" editable="1"/>
+        <field name="ZVS" editable="1"/>
+        <field name="fid" editable="1"/>
+      </editable>
+      <labelOnTop>
+        <field name="AREA" labelOnTop="0"/>
+        <field name="FUNKTIONSB" labelOnTop="0"/>
+        <field name="GEM_SCHL" labelOnTop="0"/>
+        <field name="Impfbez_Nr" labelOnTop="0"/>
+        <field name="Impfzentru" labelOnTop="0"/>
+        <field name="KERNSTADT_" labelOnTop="0"/>
+        <field name="NAME" labelOnTop="0"/>
+        <field name="ORTSRATSBE" labelOnTop="0"/>
+        <field name="ORTSTEIL" labelOnTop="0"/>
+        <field name="OT_SCHL" labelOnTop="0"/>
+        <field name="O_NAME" labelOnTop="0"/>
+        <field name="PERIMETER" labelOnTop="0"/>
+        <field name="PLG_BERATU" labelOnTop="0"/>
+        <field name="PLG_JUFOE" labelOnTop="0"/>
+        <field name="PLG_KITA" labelOnTop="0"/>
+        <field name="PLZ" labelOnTop="0"/>
+        <field name="STADTTEIL" labelOnTop="0"/>
+        <field name="STADTTEILE" labelOnTop="0"/>
+        <field name="STADTTEI_1" labelOnTop="0"/>
+        <field name="S_A_" labelOnTop="0"/>
+        <field name="S_A_ID" labelOnTop="0"/>
+        <field name="T_DATUM" labelOnTop="0"/>
+        <field name="VERFLECHTU" labelOnTop="0"/>
+        <field name="ZVS" labelOnTop="0"/>
+        <field name="fid" labelOnTop="0"/>
+      </labelOnTop>
+      <widgets/>
+      <previewExpression>fid</previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+    <maplayer hasScaleBasedVisibilityFlag="0" simplifyDrawingHints="1" refreshOnNotifyEnabled="0" labelsEnabled="0" simplifyLocal="1" readOnly="0" autoRefreshTime="0" geometry="Polygon" maxScale="0" refreshOnNotifyMessage="" simplifyDrawingTol="1" styleCategories="AllStyleCategories" simplifyAlgorithm="0" autoRefreshEnabled="0" type="vector" simplifyMaxScale="1" minScale="1e+8">
+      <extent>
+        <xmin>611951</xmin>
+        <ymin>5797784.5</ymin>
+        <xmax>629677.25</xmax>
+        <ymax>5817605</ymax>
+      </extent>
+      <id>cdb_lines_3f5c3c6d_db6d_4681_9291_7109f8d69f8b</id>
+      <datasource>./foo.gpkg|layername=cdb_lines</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>cdb_lines</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+          <srsid>2105</srsid>
+          <srid>25832</srid>
+          <authid>EPSG:25832</authid>
+          <description>ETRS89 / UTM zone 32N</description>
+          <projectionacronym>utm</projectionacronym>
+          <ellipsoidacronym>GRS80</ellipsoidacronym>
+          <geographicflag>false</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type></type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider encoding="UTF-8">ogr</provider>
+      <vectorjoins/>
+      <layerDependencies/>
+      <dataDependencies/>
+      <legend type="default-vector"/>
+      <expressionfields/>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <auxiliaryLayer/>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <renderer-v2 attr="typ" forceraster="0" type="categorizedSymbol" enableorderby="0" symbollevels="0">
+        <categories>
+          <category render="true" symbol="0" value="Ortsteil" label="Ortsteil"/>
+          <category render="true" symbol="1" value="Stadtteil" label="Stadtteil"/>
+        </categories>
+        <symbols>
+          <symbol name="0" alpha="1" type="fill" clip_to_extent="1" force_rhr="0">
+            <layer locked="0" enabled="1" pass="0" class="SimpleFill">
+              <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+              <prop v="207,94,42,255" k="color"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="78,70,255,255" k="outline_color"/>
+              <prop v="solid" k="outline_style"/>
+              <prop v="0.5" k="outline_width"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="no" k="style"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option name="name" type="QString" value=""/>
+                  <Option name="properties"/>
+                  <Option name="type" type="QString" value="collection"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+          <symbol name="1" alpha="1" type="fill" clip_to_extent="1" force_rhr="0">
+            <layer locked="0" enabled="1" pass="0" class="SimpleFill">
+              <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+              <prop v="153,148,255,255" k="color"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="153,148,255,255" k="outline_color"/>
+              <prop v="solid" k="outline_style"/>
+              <prop v="0.5" k="outline_width"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="no" k="style"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option name="name" type="QString" value=""/>
+                  <Option name="properties"/>
+                  <Option name="type" type="QString" value="collection"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </symbols>
+        <source-symbol>
+          <symbol name="0" alpha="1" type="fill" clip_to_extent="1" force_rhr="0">
+            <layer locked="0" enabled="1" pass="0" class="SimpleFill">
+              <prop v="3x:0,0,0,0,0,0" k="border_width_map_unit_scale"/>
+              <prop v="145,82,45,255" k="color"/>
+              <prop v="bevel" k="joinstyle"/>
+              <prop v="0,0" k="offset"/>
+              <prop v="3x:0,0,0,0,0,0" k="offset_map_unit_scale"/>
+              <prop v="MM" k="offset_unit"/>
+              <prop v="35,35,35,255" k="outline_color"/>
+              <prop v="solid" k="outline_style"/>
+              <prop v="0.26" k="outline_width"/>
+              <prop v="MM" k="outline_width_unit"/>
+              <prop v="solid" k="style"/>
+              <data_defined_properties>
+                <Option type="Map">
+                  <Option name="name" type="QString" value=""/>
+                  <Option name="properties"/>
+                  <Option name="type" type="QString" value="collection"/>
+                </Option>
+              </data_defined_properties>
+            </layer>
+          </symbol>
+        </source-symbol>
+        <rotation/>
+        <sizescale/>
+      </renderer-v2>
+      <customproperties>
+        <property value="&quot;id&quot;" key="dualview/previewExpressions"/>
+        <property value="0" key="embeddedWidgets/count"/>
+        <property key="variableNames"/>
+        <property key="variableValues"/>
+      </customproperties>
+      <blendMode>0</blendMode>
+      <featureBlendMode>0</featureBlendMode>
+      <layerOpacity>1</layerOpacity>
+      <SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
+        <DiagramCategory lineSizeScale="3x:0,0,0,0,0,0" scaleBasedVisibility="0" scaleDependency="Area" sizeScale="3x:0,0,0,0,0,0" penAlpha="255" penColor="#000000" maxScaleDenominator="1e+8" rotationOffset="270" backgroundAlpha="255" backgroundColor="#ffffff" enabled="0" barWidth="5" lineSizeType="MM" labelPlacementMethod="XHeight" diagramOrientation="Up" opacity="1" penWidth="0" minScaleDenominator="0" minimumSize="0" height="15" width="15" sizeType="MM">
+          <fontProperties style="" description="Noto Sans,9,-1,5,50,0,0,0,0,0"/>
+          <attribute color="#000000" label="" field=""/>
+        </DiagramCategory>
+      </SingleCategoryDiagramRenderer>
+      <DiagramLayerSettings linePlacementFlags="18" dist="0" priority="0" zIndex="0" showAll="1" placement="1" obstacle="0">
+        <properties>
+          <Option type="Map">
+            <Option name="name" type="QString" value=""/>
+            <Option name="properties"/>
+            <Option name="type" type="QString" value="collection"/>
+          </Option>
+        </properties>
+      </DiagramLayerSettings>
+      <geometryOptions geometryPrecision="0" removeDuplicateNodes="0">
+        <activeChecks/>
+        <checkConfiguration/>
+      </geometryOptions>
+      <fieldConfiguration>
+        <field name="fid">
+          <editWidget type="">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="id">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="typ">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="name">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+        <field name="ortsrat">
+          <editWidget type="TextEdit">
+            <config>
+              <Option/>
+            </config>
+          </editWidget>
+        </field>
+      </fieldConfiguration>
+      <aliases>
+        <alias name="" index="0" field="fid"/>
+        <alias name="" index="1" field="id"/>
+        <alias name="" index="2" field="typ"/>
+        <alias name="" index="3" field="name"/>
+        <alias name="" index="4" field="ortsrat"/>
+      </aliases>
+      <excludeAttributesWMS/>
+      <excludeAttributesWFS/>
+      <defaults>
+        <default applyOnUpdate="0" field="fid" expression=""/>
+        <default applyOnUpdate="0" field="id" expression=""/>
+        <default applyOnUpdate="0" field="typ" expression=""/>
+        <default applyOnUpdate="0" field="name" expression=""/>
+        <default applyOnUpdate="0" field="ortsrat" expression=""/>
+      </defaults>
+      <constraints>
+        <constraint unique_strength="1" exp_strength="0" constraints="3" notnull_strength="1" field="fid"/>
+        <constraint unique_strength="1" exp_strength="0" constraints="3" notnull_strength="1" field="id"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="typ"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="name"/>
+        <constraint unique_strength="0" exp_strength="0" constraints="0" notnull_strength="0" field="ortsrat"/>
+      </constraints>
+      <constraintExpressions>
+        <constraint exp="" desc="" field="fid"/>
+        <constraint exp="" desc="" field="id"/>
+        <constraint exp="" desc="" field="typ"/>
+        <constraint exp="" desc="" field="name"/>
+        <constraint exp="" desc="" field="ortsrat"/>
+      </constraintExpressions>
+      <expressionfields/>
+      <attributeactions>
+        <defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
+      </attributeactions>
+      <attributetableconfig sortExpression="" sortOrder="0" actionWidgetStyle="dropDown">
+        <columns>
+          <column name="id" type="field" hidden="0" width="-1"/>
+          <column name="typ" type="field" hidden="0" width="-1"/>
+          <column name="name" type="field" hidden="0" width="-1"/>
+          <column name="ortsrat" type="field" hidden="0" width="-1"/>
+          <column type="actions" hidden="1" width="-1"/>
+        </columns>
+      </attributetableconfig>
+      <conditionalstyles>
+        <rowstyles/>
+        <fieldstyles/>
+      </conditionalstyles>
+      <editform tolerant="1"></editform>
+      <editforminit/>
+      <editforminitcodesource>0</editforminitcodesource>
+      <editforminitfilepath></editforminitfilepath>
+      <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+      <featformsuppress>0</featformsuppress>
+      <editorlayout>generatedlayout</editorlayout>
+      <editable>
+        <field name="id" editable="1"/>
+        <field name="name" editable="1"/>
+        <field name="ortsrat" editable="1"/>
+        <field name="typ" editable="1"/>
+      </editable>
+      <labelOnTop>
+        <field name="id" labelOnTop="0"/>
+        <field name="name" labelOnTop="0"/>
+        <field name="ortsrat" labelOnTop="0"/>
+        <field name="typ" labelOnTop="0"/>
+      </labelOnTop>
+      <widgets/>
+      <previewExpression>id</previewExpression>
+      <mapTip></mapTip>
+    </maplayer>
+    <maplayer hasScaleBasedVisibilityFlag="0" refreshOnNotifyEnabled="0" autoRefreshTime="0" maxScale="0" refreshOnNotifyMessage="" styleCategories="AllStyleCategories" autoRefreshEnabled="0" type="raster" minScale="1e+8">
+      <extent>
+        <xmin>611425.600499999942258</xmin>
+        <ymin>5808334.13232080265879631</ymin>
+        <xmax>623219.587000000057742</xmax>
+        <ymax>5814172.86767920013517141</ymax>
+      </extent>
+      <id>osm_85c8eb94_b6fa_437b_b91a_7816ef2e2243</id>
+      <datasource>GPKG:./foo.gpkg:osm</datasource>
+      <keywordList>
+        <value></value>
+      </keywordList>
+      <layername>osm</layername>
+      <srs>
+        <spatialrefsys>
+          <proj4>+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs</proj4>
+          <srsid>2105</srsid>
+          <srid>25832</srid>
+          <authid>EPSG:25832</authid>
+          <description>ETRS89 / UTM zone 32N</description>
+          <projectionacronym>utm</projectionacronym>
+          <ellipsoidacronym>GRS80</ellipsoidacronym>
+          <geographicflag>false</geographicflag>
+        </spatialrefsys>
+      </srs>
+      <resourceMetadata>
+        <identifier></identifier>
+        <parentidentifier></parentidentifier>
+        <language></language>
+        <type></type>
+        <title></title>
+        <abstract></abstract>
+        <links/>
+        <fees></fees>
+        <encoding></encoding>
+        <crs>
+          <spatialrefsys>
+            <proj4></proj4>
+            <srsid>0</srsid>
+            <srid>0</srid>
+            <authid></authid>
+            <description></description>
+            <projectionacronym></projectionacronym>
+            <ellipsoidacronym></ellipsoidacronym>
+            <geographicflag>false</geographicflag>
+          </spatialrefsys>
+        </crs>
+        <extent/>
+      </resourceMetadata>
+      <provider>gdal</provider>
+      <noData>
+        <noDataList useSrcNoData="0" bandNo="1"/>
+        <noDataList useSrcNoData="0" bandNo="2"/>
+        <noDataList useSrcNoData="0" bandNo="3"/>
+        <noDataList useSrcNoData="0" bandNo="4"/>
+      </noData>
+      <map-layer-style-manager current="default">
+        <map-layer-style name="default"/>
+      </map-layer-style-manager>
+      <flags>
+        <Identifiable>1</Identifiable>
+        <Removable>1</Removable>
+        <Searchable>1</Searchable>
+      </flags>
+      <customproperties>
+        <property value="Value" key="identify/format"/>
+      </customproperties>
+      <pipe>
+        <rasterrenderer opacity="1" alphaBand="4" redBand="1" type="multibandcolor" greenBand="2" blueBand="3">
+          <rasterTransparency/>
+          <minMaxOrigin>
+            <limits>MinMax</limits>
+            <extent>WholeRaster</extent>
+            <statAccuracy>Estimated</statAccuracy>
+            <cumulativeCutLower>0.02</cumulativeCutLower>
+            <cumulativeCutUpper>0.98</cumulativeCutUpper>
+            <stdDevFactor>2</stdDevFactor>
+          </minMaxOrigin>
+          <redContrastEnhancement>
+            <minValue>0</minValue>
+            <maxValue>255</maxValue>
+            <algorithm>NoEnhancement</algorithm>
+          </redContrastEnhancement>
+          <greenContrastEnhancement>
+            <minValue>0</minValue>
+            <maxValue>255</maxValue>
+            <algorithm>NoEnhancement</algorithm>
+          </greenContrastEnhancement>
+          <blueContrastEnhancement>
+            <minValue>0</minValue>
+            <maxValue>255</maxValue>
+            <algorithm>NoEnhancement</algorithm>
+          </blueContrastEnhancement>
+        </rasterrenderer>
+        <brightnesscontrast contrast="0" brightness="0"/>
+        <huesaturation grayscaleMode="0" saturation="0" colorizeStrength="100" colorizeBlue="128" colorizeGreen="128" colorizeRed="255" colorizeOn="0"/>
+        <rasterresampler maxOversampling="2"/>
+      </pipe>
+      <blendMode>0</blendMode>
+    </maplayer>
+  </projectlayers>
+  <layerorder>
+    <layer id="osm_85c8eb94_b6fa_437b_b91a_7816ef2e2243"/>
+    <layer id="cdb_labels_8ee74af8_e7ba_4d80_9e0d_5b0b956d3daf"/>
+    <layer id="cdb_lines_3f5c3c6d_db6d_4681_9291_7109f8d69f8b"/>
+    <layer id="as_areas_bbe3c71b_356c_49f5_9fc2_ae771bcdd467"/>
+    <layer id="as_symbols_3a1cdeef_9082_4d07_be5c_47c956bd7e76"/>
+  </layerorder>
+  <properties>
+    <Measurement>
+      <AreaUnits type="QString">m2</AreaUnits>
+      <DistanceUnits type="QString">meters</DistanceUnits>
+    </Measurement>
+    <WMSUseLayerIDs type="bool">false</WMSUseLayerIDs>
+    <WMSPrecision type="QString">8</WMSPrecision>
+    <WMTSJpegLayers>
+      <Project type="bool">false</Project>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+    </WMTSJpegLayers>
+    <WMTSPngLayers>
+      <Project type="bool">false</Project>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+    </WMTSPngLayers>
+    <WMSUrl type="QString"></WMSUrl>
+    <SpatialRefSys>
+      <ProjectionsEnabled type="int">1</ProjectionsEnabled>
+    </SpatialRefSys>
+    <Legend>
+      <filterByMap type="bool">false</filterByMap>
+    </Legend>
+    <WMTSLayers>
+      <Project type="bool">false</Project>
+      <Group type="QStringList"/>
+      <Layer type="QStringList"/>
+    </WMTSLayers>
+    <WMSServiceTitle type="QString"></WMSServiceTitle>
+    <Macros>
+      <pythonCode type="QString"></pythonCode>
+    </Macros>
+    <WMTSUrl type="QString"></WMTSUrl>
+    <Paths>
+      <Absolute type="bool">false</Absolute>
+    </Paths>
+    <WMTSMinScale type="int">5000</WMTSMinScale>
+    <WMSImageQuality type="int">90</WMSImageQuality>
+    <WMSServiceAbstract type="QString"></WMSServiceAbstract>
+    <WMSOnlineResource type="QString"></WMSOnlineResource>
+    <WCSLayers type="QStringList"/>
+    <Gui>
+      <CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
+      <SelectionColorRedPart type="int">255</SelectionColorRedPart>
+      <SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
+      <CanvasColorBluePart type="int">255</CanvasColorBluePart>
+      <SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
+      <SelectionColorBluePart type="int">0</SelectionColorBluePart>
+      <CanvasColorRedPart type="int">255</CanvasColorRedPart>
+    </Gui>
+    <Measure>
+      <Ellipsoid type="QString">GRS80</Ellipsoid>
+    </Measure>
+    <WFSTLayers>
+      <Update type="QStringList"/>
+      <Delete type="QStringList"/>
+      <Insert type="QStringList"/>
+    </WFSTLayers>
+    <WMSSegmentizeFeatureInfoGeometry type="bool">false</WMSSegmentizeFeatureInfoGeometry>
+    <WFSUrl type="QString"></WFSUrl>
+    <WCSUrl type="QString"></WCSUrl>
+    <PositionPrecision>
+      <Automatic type="bool">true</Automatic>
+      <DecimalPlaces type="int">2</DecimalPlaces>
+      <DegreeFormat type="QString">MU</DegreeFormat>
+    </PositionPrecision>
+    <WMSAddWktGeometry type="bool">false</WMSAddWktGeometry>
+    <WMSServiceCapabilities type="bool">true</WMSServiceCapabilities>
+    <WMSFees type="QString">conditions unknown</WMSFees>
+    <WMSAccessConstraints type="QString">None</WMSAccessConstraints>
+    <WMSContactOrganization type="QString"></WMSContactOrganization>
+    <WMSContactMail type="QString"></WMSContactMail>
+    <PAL>
+      <CandidatesPolygon type="int">30</CandidatesPolygon>
+      <ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
+      <TextFormat type="int">0</TextFormat>
+      <DrawRectOnly type="bool">false</DrawRectOnly>
+      <SearchMethod type="int">0</SearchMethod>
+      <CandidatesLine type="int">50</CandidatesLine>
+      <DrawOutlineLabels type="bool">true</DrawOutlineLabels>
+      <CandidatesPoint type="int">16</CandidatesPoint>
+      <ShowingCandidates type="bool">false</ShowingCandidates>
+      <ShowingAllLabels type="bool">false</ShowingAllLabels>
+    </PAL>
+    <WMSKeywordList type="QStringList">
+      <value></value>
+    </WMSKeywordList>
+    <WMSContactPosition type="QString"></WMSContactPosition>
+    <DefaultStyles>
+      <Line type="QString"></Line>
+      <ColorRamp type="QString"></ColorRamp>
+      <RandomColors type="bool">true</RandomColors>
+      <Marker type="QString"></Marker>
+      <Fill type="QString"></Fill>
+      <Opacity type="double">1</Opacity>
+    </DefaultStyles>
+    <WMSRequestDefinedDataSources type="bool">false</WMSRequestDefinedDataSources>
+    <WFSLayers type="QStringList"/>
+    <WMSContactPhone type="QString"></WMSContactPhone>
+    <WMSContactPerson type="QString"></WMSContactPerson>
+  </properties>
+  <visibility-presets/>
+  <transformContext/>
+  <projectMetadata>
+    <identifier></identifier>
+    <parentidentifier></parentidentifier>
+    <language></language>
+    <type></type>
+    <title>QGIS Server - Grouped Layer</title>
+    <abstract></abstract>
+    <contact>
+      <name></name>
+      <organization></organization>
+      <position></position>
+      <voice></voice>
+      <fax></fax>
+      <email></email>
+      <role></role>
+    </contact>
+    <links/>
+    <author>Burghardt Scholle</author>
+    <creation>2018-12-11T10:39:23</creation>
+  </projectMetadata>
+  <Annotations/>
+  <Layouts/>
+</qgis>
diff --git a/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_virtual_fields.txt b/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_virtual_fields.txt
new file mode 100644
index 0000000000..b371a2f64e
--- /dev/null
+++ b/tests/testdata/qgis_server/wfs_describeFeatureType_1_1_0_virtual_fields.txt
@@ -0,0 +1,21 @@
+
+Content-Type: text/xml; charset=utf-8
+
+<schema xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.qgis.org/gml" xmlns:qgs="http://www.qgis.org/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ogc="http://www.opengis.net/ogc" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"/>
+ <element type="qgs:layer_with_short_nameType" name="layer_with_short_name" substitutionGroup="gml:_Feature"/>
+ <complexType name="layer_with_short_nameType">
+  <complexContent>
+   <extension base="gml:AbstractFeatureType">
+    <sequence>
+     <element maxOccurs="1" type="gml:PointPropertyType" minOccurs="0" name="geometry"/>
+     <element type="long" nillable="true" name="id"/>
+     <element type="string" nillable="true" name="name"/>
+     <element type="string" nillable="true" name="utf8nameè"/>
+     <element type="decimal" nillable="true" name="virtdbl"/>
+     <element type="int" nillable="true" name="virtint"/>
+    </sequence>
+   </extension>
+  </complexContent>
+ </complexType>
+</schema>
diff --git a/tests/testdata/qgis_server/wms_getcapabilities_empty_layer.txt b/tests/testdata/qgis_server/wms_getcapabilities_empty_layer.txt
new file mode 100644
index 0000000000..773bd2a243
--- /dev/null
+++ b/tests/testdata/qgis_server/wms_getcapabilities_empty_layer.txt
@@ -0,0 +1,132 @@
+Content-Length: 4920
+Content-Type: text/xml; charset=utf-8
+
+<?xml version="1.0" encoding="utf-8"?>
+<WMS_Capabilities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:qgs="http://www.qgis.org/wms" xmlns="http://www.opengis.net/wms" xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd https://www.qgis.org/?SERVICE=WMS&amp;REQUEST=GetSchemaExtension" version="1.3.0" xmlns:sld="http://www.opengis.net/sld">
+ <Service>
+  <Name>WMS</Name>
+  <KeywordList>
+   <Keyword vocabulary="ISO">infoMapAccessService</Keyword>
+  </KeywordList>
+  <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+  <Fees>conditions unknown</Fees>
+  <AccessConstraints>None</AccessConstraints>
+ </Service>
+ <Capability>
+  <Request>
+   <GetCapabilities>
+    <Format>text/xml</Format>
+    <DCPType>
+     <HTTP>
+      <Get>
+       <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+      </Get>
+     </HTTP>
+    </DCPType>
+   </GetCapabilities>
+   <GetMap>
+    <Format>image/jpeg</Format>
+    <Format>image/png</Format>
+    <Format>image/png; mode=16bit</Format>
+    <Format>image/png; mode=8bit</Format>
+    <Format>image/png; mode=1bit</Format>
+    <Format>application/dxf</Format>
+    <DCPType>
+     <HTTP>
+      <Get>
+       <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+      </Get>
+     </HTTP>
+    </DCPType>
+   </GetMap>
+   <GetFeatureInfo>
+    <Format>text/plain</Format>
+    <Format>text/html</Format>
+    <Format>text/xml</Format>
+    <Format>application/vnd.ogc.gml</Format>
+    <Format>application/vnd.ogc.gml/3.1.1</Format>
+    <DCPType>
+     <HTTP>
+      <Get>
+       <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+      </Get>
+     </HTTP>
+    </DCPType>
+   </GetFeatureInfo>
+   <sld:GetLegendGraphic>
+    <Format>image/jpeg</Format>
+    <Format>image/png</Format>
+    <DCPType>
+     <HTTP>
+      <Get>
+       <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+      </Get>
+     </HTTP>
+    </DCPType>
+   </sld:GetLegendGraphic>
+   <sld:DescribeLayer>
+    <Format>text/xml</Format>
+    <DCPType>
+     <HTTP>
+      <Get>
+       <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+      </Get>
+     </HTTP>
+    </DCPType>
+   </sld:DescribeLayer>
+   <qgs:GetStyles>
+    <Format>text/xml</Format>
+    <DCPType>
+     <HTTP>
+      <Get>
+       <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+      </Get>
+     </HTTP>
+    </DCPType>
+   </qgs:GetStyles>
+  </Request>
+  <Exception>
+   <Format>XML</Format>
+  </Exception>
+  <sld:UserDefinedSymbolization SupportSLD="1" RemoteWCS="0" UserLayer="0" InlineFeature="0" RemoteWFS="0" UserStyle="1"/>
+  <Layer queryable="1">
+   <KeywordList>
+    <Keyword vocabulary="ISO">infoMapAccessService</Keyword>
+   </KeywordList>
+   <CRS>CRS:84</CRS>
+   <CRS>EPSG:3857</CRS>
+   <CRS>EPSG:4326</CRS>
+   <EX_GeographicBoundingBox>
+    <westBoundLongitude>6.56502</westBoundLongitude>
+    <eastBoundLongitude>15.2244</eastBoundLongitude>
+    <southBoundLatitude>42.8754</southBoundLatitude>
+    <northBoundLatitude>45.8285</northBoundLatitude>
+   </EX_GeographicBoundingBox>
+   <BoundingBox maxy="15.2244" maxx="45.8285" miny="6.56502" CRS="EPSG:4326" minx="42.8754"/>
+   <BoundingBox maxy="5.75291e+06" maxx="1.69477e+06" miny="5.29302e+06" CRS="EPSG:3857" minx="730815"/>
+   <Layer queryable="1">
+    <Name>bug_gh30264_empty_layer_wrong_bbox</Name>
+    <Title>bug_gh30264_empty_layer_wrong_bbox</Title>
+    <CRS>CRS:84</CRS>
+    <CRS>EPSG:3857</CRS>
+    <CRS>EPSG:4326</CRS>
+    <EX_GeographicBoundingBox>
+     <westBoundLongitude>6.56502</westBoundLongitude>
+     <eastBoundLongitude>15.2244</eastBoundLongitude>
+     <southBoundLatitude>42.8754</southBoundLatitude>
+     <northBoundLatitude>45.8285</northBoundLatitude>
+    </EX_GeographicBoundingBox>
+    <BoundingBox maxy="15.2244" maxx="45.8285" miny="6.56502" CRS="EPSG:4326" minx="42.8754"/>
+    <BoundingBox maxy="5.75291e+06" maxx="1.69477e+06" miny="5.29302e+06" CRS="EPSG:3857" minx="730815"/>
+    <Style>
+     <Name>default</Name>
+     <Title>default</Title>
+     <LegendURL>
+      <Format>image/png</Format>
+      <OnlineResource xlink:type="simple" xlink:href="https://www.qgis.org/?&amp;SERVICE=WMS&amp;VERSION=1.3.0&amp;REQUEST=GetLegendGraphic&amp;LAYER=bug_gh30264_empty_layer_wrong_bbox&amp;FORMAT=image/png&amp;STYLE=default&amp;SLD_VERSION=1.1.0" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+     </LegendURL>
+    </Style>
+   </Layer>
+  </Layer>
+ </Capability>
+</WMS_Capabilities>
diff --git a/tests/testdata/test_plugin_path/PluginPathTest/__init__.py b/tests/testdata/test_plugin_path/PluginPathTest/__init__.py
index 588f131a4a..1d6aee4865 100644
--- a/tests/testdata/test_plugin_path/PluginPathTest/__init__.py
+++ b/tests/testdata/test_plugin_path/PluginPathTest/__init__.py
@@ -21,7 +21,7 @@ __author__ = 'Hugo Mercier'
 __date__ = 'July 2013'
 __copyright__ = '(C) 2013, Hugo Mercier'
 # This will get replaced with a git SHA1 when you do a git archive
-__revision__ = '04ee8e07611af632be18601ba0081fb84b0c437b'
+__revision__ = '54585165bba895db4c83ffda980be7778246f2c5'
 
 import os
 
-- 
GitLab