[proj] 02/03: Imported Upstream version 4.9.0~rc1

Bas Couwenberg sebastic at xs4all.nl
Sun Oct 5 19:36:22 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream
in repository proj.

commit 96d93e61253f7f430e13e3ab48334e0f99c13c8b
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Oct 3 17:21:25 2014 +0200

    Imported Upstream version 4.9.0~rc1
---
 CMakeLists.txt                           |   81 ++
 ChangeLog                                |   57 +-
 Makefile.am                              |    4 +-
 Makefile.in                              |   94 +-
 NEWS                                     |    4 +-
 aclocal.m4                               |   74 +-
 cmake/Makefile.am                        |    8 +
 {jniwrap/org/proj4 => cmake}/Makefile.in |   35 +-
 cmake/Proj4Config.cmake                  |   38 +
 cmake/Proj4InstallPath.cmake             |   67 ++
 cmake/Proj4Mac.cmake                     |   24 +
 cmake/Proj4SystemInfo.cmake              |   77 ++
 cmake/Proj4Test.cmake                    |   32 +
 cmake/Proj4Utilities.cmake               |  456 +++++++++
 cmake/Proj4Version.cmake                 |   59 ++
 cmake/proj_config.cmake.in               |   62 ++
 configure                                |  228 +++--
 configure.in                             |    2 +-
 jniwrap/Makefile.in                      |   19 +-
 jniwrap/org/Makefile.in                  |   19 +-
 jniwrap/org/proj4/Makefile.in            |   19 +-
 ltmain.sh                                |  123 ++-
 m4/libtool.m4                            |  292 ++++--
 m4/ltoptions.m4                          |   19 +-
 m4/ltversion.m4                          |   10 +-
 man/Makefile.in                          |   19 +-
 man/man1/Makefile.in                     |   29 +-
 man/man1/cs2cs.1                         |   12 +-
 man/man3/Makefile.in                     |   29 +-
 nad/CMakeLists.txt                       |   55 +
 nad/Makefile.am                          |   23 +-
 nad/Makefile.in                          |   52 +-
 nad/epsg                                 | 1621 +++++++++++++++++++++++++++---
 nad/proj_def.dat                         |   17 -
 nad/testvarious                          |  216 +++-
 nad/tv_out.dist                          |  119 ++-
 src/CMakeLists.txt                       |   25 +
 src/Makefile.am                          |   10 +-
 src/Makefile.in                          |   82 +-
 src/PJ_aeqd.c                            |    6 +-
 src/PJ_geos.c                            |    4 +-
 src/PJ_omerc.c                           |    6 +
 src/PJ_qsc.c                             |  375 +++++++
 src/bin_cs2cs.cmake                      |   14 +
 src/bin_geod.cmake                       |   16 +
 src/bin_nad2bin.cmake                    |   17 +
 src/bin_proj.cmake                       |   19 +
 src/lib_proj.cmake                       |  313 ++++++
 src/makefile.vc                          |    4 +-
 src/multistresstest.c                    |    7 +-
 src/pj_datums.c                          |    4 +-
 src/pj_gridinfo.c                        |  190 ++--
 src/pj_init.c                            |   28 +-
 src/pj_list.h                            |    1 +
 src/pj_release.c                         |    2 +-
 src/test228.c                            |   70 ++
 56 files changed, 4579 insertions(+), 709 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..82df170
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,81 @@
+#################################################################################
+#
+# This file is part of CMake configuration for PROJ4 library (inspired from SOCI
+# CMake,  Copyright (C) 2009-2010 Mateusz Loskot <mateusz at loskot.net> )
+#
+# Copyright (C) 2011 Nicolas David <nicolas.david at ign.fr>
+# Distributed under the MIT license
+#
+#################################################################################
+# General settings
+#################################################################################
+cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
+
+# proj4 is an ANSI C project
+project(PROJ4 C)
+set(PROJECT_INTERN_NAME PROJ)
+
+#################################################################################
+# PROJ4 CMake modules
+#################################################################################
+# Path to additional CMake modules
+set(CMAKE_MODULE_PATH ${PROJ4_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
+set(CMAKE_MODULE_PATH ${PROJ4_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
+
+include(Proj4Utilities)
+
+message(STATUS "")
+colormsg(_HIBLUE_ "Configuring PROJ:")
+
+#################################################################################
+#PROJ version information
+#################################################################################
+include(Proj4Version)
+proj_version(MAJOR 4 MINOR 8 PATCH 0)
+
+#################################################################################
+# Build features and variants
+#################################################################################
+include(Proj4SystemInfo)
+include(Proj4Config)
+include(Proj4Mac)
+
+boost_report_value(PROJ_PLATFORM_NAME)
+boost_report_value(PROJ_COMPILER_NAME)
+
+option(PROJ4_TESTS "Enable build of collection of PROJ4 tests" ON)
+boost_report_value(PROJ4_TESTS)
+if(PROJ4_TESTS)
+    include(CTest)
+    enable_testing()
+endif(PROJ4_TESTS)
+include(Proj4Test)
+
+# Put the libaries and binaries that get built into directories at the
+# top of the build tree rather than in hard-to-find leaf
+# directories. This simplifies manual testing and the use of the build
+# tree rather than installed Boost libraries.
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
+link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
+
+#################################################################################
+# Installation
+#################################################################################
+include(Proj4InstallPath)
+set(BINDIR "${DEFAULT_BINDIR}" CACHE PATH "The directory to install binaries into.")
+set(LIBDIR "${DEFAULT_LIBDIR}" CACHE PATH "The directory to install libraries into.")
+set(DATADIR "${DEFAULT_DATADIR}" CACHE PATH "The directory to install data files into.")
+set(DOCDIR "${DEFAULT_DOCDIR}" CACHE PATH "The directory to install doc files into.")
+set(INCLUDEDIR "${DEFAULT_INCLUDEDIR}" CACHE PATH "The directory to install includes into.")
+
+#################################################################################
+# Build configured components
+#################################################################################
+include_directories(${PROJ4_SOURCE_DIR}/src)
+
+message(STATUS "")
+add_subdirectory(nad)
+add_subdirectory(src)
+
diff --git a/ChangeLog b/ChangeLog
index b91ee9d..e9a6a6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,48 @@
+2014-09-13  Frank Warmerdam  <warmerdam at pobox.com>
+
+	* Generate 4.9.0 release.
+
+2014-19-13 Howard Butler <hobu.inc at gmail.com>
+	* CMake: Implement CMake build system for proj.4 #243
+
+2014-09-13  Frank Warmerdam  <warmerdam at pobox.com>
+
+	* src/pj_datums.c: fix spelling of clrk80 in carthage datum def (#245)
+
+2014-19-13 Howard Butler <hobu.inc at gmail.com>
+	* pj_gridinfo.c: Don't crash when nad_ctable_init doesn't return
+	a ctx. #231
+
+2014-09-13  Frank Warmerdam  <warmerdam at pobox.com>
+
+	* nad/epsg: Updated to EPSG 8.5
+
+2014-19-08 Even Rouault <even.rouault at mines-paris.org>
+
+	* src/pj_gridinfo.c: Make pj_gridinfo_load() thread-safe (#228)
+
+2014-19-08 Howard Butler <hobu.inc at gmail.com>
+
+	* src/pj_init.c: apply fix specified in #229  -- pj_init_plus() with init
+	and other parms fails in 4.9.0beta
+
+2014-06-06 Even Rouault <even.rouault at mines-paris.org>
+
+	* src/PJ_omerc.c: mark no_off/no_uoff as used for round-tripping
+	pj_init_ctxt()/pj_get_def() (#239)
+
+2014-05-14 Even Rouault <even.rouault at mines-paris.org>
+
+	* nad/epsg: Upgraded to EPSG 8.4
+
+2013-12-09  Frank Warmerdam  <warmerdam at pobox.com>
+
+	* src/PJ_geos.c, testvarious: reverse sense of sweep flag. (#146)
+
+2013-12-05  Frank Warmerdam  <warmerdam at pobox.com>
+
+	* src/PJ_qsc.c: Add QSC projection (#179)
+
 2013-10-27  Frank Warmerdam  <warmerdam at gdal-c>
 
 	* Prepare 4.9.0beta2 release.
@@ -33,7 +78,7 @@
 
 2013-07-21  Frank Warmerdam  <warmerdam at pobox.com>
 
-	* src/proj_etmerc.c: Fix two errors in the n**5 coefficients.  Add 
+	* src/proj_etmerc.c: Fix two errors in the n**5 coefficients.  Add
 	sixth order coefficients.  Fix rounding problems (#222)
 
 2013-07-19  Frank Warmerdam  <warmerdam at pobox.com>
@@ -42,7 +87,7 @@
 
 2013-07-12  Frank Warmerdam  <warmerdam at pobox.com>
 
-	* src/geodesic.{c,h}: allow polygon vertices to be specified 
+	* src/geodesic.{c,h}: allow polygon vertices to be specified
 	incrementally for geodesic area (#221).
 
 2013-07-08  Frank Warmerdam  <warmerdam at pobox.com>
@@ -78,7 +123,7 @@
 
 	* src/multistresstest.c: add windows support (#199)
 
-	* src/pj_ctx.c: avoid race condition on setting of 
+	* src/pj_ctx.c: avoid race condition on setting of
 	default_context_initialized. (#199)
 
 	* config.guess, config.sub: updated to newer versions (#208).
@@ -156,9 +201,9 @@
 
 2012-05-31  Martin Desruisseaux <martin.desruisseaux at geomatys.fr>
 
-	* Replaced usages of NAN C/C++ constant by the java.lang.Double.NaN 
-	constant.  This was done because not all C/C++ compilers define the 
-	NAN constant, and for making sure that the bits pattern is exactly the 
+	* Replaced usages of NAN C/C++ constant by the java.lang.Double.NaN
+	constant.  This was done because not all C/C++ compilers define the
+	NAN constant, and for making sure that the bits pattern is exactly the
 	one expected by Java.
 
 2012-03-25  Frank Warmerdam  <warmerdam at pobox.com>
diff --git a/Makefile.am b/Makefile.am
index f06d015..3795cfd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
-SUBDIRS	=	src man nad jniwrap
+SUBDIRS	=	src man nad jniwrap cmake
 
-EXTRA_DIST = makefile.vc nmake.opt
+EXTRA_DIST = makefile.vc nmake.opt CMakeLists.txt
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = proj.pc
diff --git a/Makefile.in b/Makefile.in
index 0ecdcfa..cce578c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -83,6 +83,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
@@ -97,9 +103,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -128,6 +136,8 @@ am__relativize = \
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -246,8 +256,8 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = src man nad jniwrap
-EXTRA_DIST = makefile.vc nmake.opt
+SUBDIRS = src man nad jniwrap cmake
+EXTRA_DIST = makefile.vc nmake.opt CMakeLists.txt
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = proj.pc
 AUTOMAKE_OPTIONS = dist-zip
@@ -255,7 +265,7 @@ ACLOCAL_AMFLAGS = -I m4
 all: all-recursive
 
 .SUFFIXES:
-am--refresh:
+am--refresh: Makefile
 	@:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
@@ -317,9 +327,7 @@ uninstall-pkgconfigDATA:
 	@$(NORMAL_UNINSTALL)
 	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -528,7 +536,11 @@ dist-gzip: distdir
 	$(am__remove_distdir)
 
 dist-bzip2: distdir
-	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
 	$(am__remove_distdir)
 
 dist-lzma: distdir
@@ -536,7 +548,7 @@ dist-lzma: distdir
 	$(am__remove_distdir)
 
 dist-xz: distdir
-	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
 	$(am__remove_distdir)
 
 dist-tarZ: distdir
@@ -568,6 +580,8 @@ distcheck: dist
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
 	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
@@ -587,6 +601,7 @@ distcheck: dist
 	  && am__cwd=`pwd` \
 	  && $(am__cd) $(distdir)/_build \
 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -615,8 +630,16 @@ distcheck: dist
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-	@$(am__cd) '$(distuninstallcheck_dir)' \
-	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
 	   || { echo "ERROR: files left after uninstall:" ; \
 	        if test -n "$(DESTDIR)"; then \
 	          echo "  (check DESTDIR support)"; \
@@ -650,10 +673,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -741,19 +769,19 @@ uninstall-am: uninstall-pkgconfigDATA
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am am--refresh check check-am clean clean-generic \
 	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-	dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
-	distcheck distclean distclean-generic distclean-libtool \
-	distclean-tags distcleancheck distdir distuninstallcheck dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-	ps ps-am tags tags-recursive uninstall uninstall-am \
-	uninstall-pkgconfigDATA
+	dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \
+	dist-zip distcheck distclean distclean-generic \
+	distclean-libtool distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am uninstall-pkgconfigDATA
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/NEWS b/NEWS
index bdb1cb6..8a3eb34 100644
--- a/NEWS
+++ b/NEWS
@@ -1,13 +1,15 @@
 4.9.0 Release Notes
 -------------------
 
+ o Implement CMake as an option for building PROJ.4
+
  o Implement new virtual file api (projFileAPI) so that all access to grid
    shift and init files can be hooked.
 
  o Replace geodesic implementation with one from Charles Karney and add a 
    supported public interface (geod_interface.h).
 
- o Upgraded to EPSG 8.2.
+ o Upgraded to EPSG 8.5.
 
  o Removed old (deprecated) Java bindings in favor of the new api introduced
    in 4.8.0.
diff --git a/aclocal.m4 b/aclocal.m4
index 0e8bb49..ebbd997 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -19,12 +20,15 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
@@ -34,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.11.3], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,19 +54,21 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.11.3])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
 # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -144,14 +150,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
+# serial 12
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -191,6 +197,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -255,7 +262,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -320,10 +327,13 @@ AC_DEFUN([AM_DEP_TRACK],
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -557,12 +567,15 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -602,8 +615,8 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -623,7 +636,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
@@ -734,12 +747,15 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_MKDIR_P
 # ---------------
 # Check for `mkdir -p'.
@@ -762,13 +778,14 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -776,13 +793,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -858,12 +875,14 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_INSTALL_STRIP
 # ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
@@ -886,13 +905,13 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -901,13 +920,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -929,10 +948,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
 AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
 m4_if([$1], [v7],
-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
      [m4_case([$1], [ustar],, [pax],,
               [m4_fatal([Unknown tar format])])
 AC_MSG_CHECKING([how to create a $1 tar archive])
diff --git a/cmake/Makefile.am b/cmake/Makefile.am
new file mode 100644
index 0000000..051f97f
--- /dev/null
+++ b/cmake/Makefile.am
@@ -0,0 +1,8 @@
+EXTRA_DIST = Proj4InstallPath.cmake \
+			Proj4SystemInfo.cmake \
+			Proj4Utilities.cmake   \
+			proj_config.cmake.in \
+			Proj4Config.cmake \
+			Proj4Mac.cmake \
+			Proj4Test.cmake \
+			Proj4Version.cmake
diff --git a/jniwrap/org/proj4/Makefile.in b/cmake/Makefile.in
similarity index 91%
copy from jniwrap/org/proj4/Makefile.in
copy to cmake/Makefile.in
index 94e1dbb..1602c66 100644
--- a/jniwrap/org/proj4/Makefile.in
+++ b/cmake/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -33,7 +33,7 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-subdir = jniwrap/org/proj4
+subdir = cmake
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
@@ -166,7 +166,15 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-EXTRA_DIST = PJ.java PJException.java package-info.java
+EXTRA_DIST = Proj4InstallPath.cmake \
+			Proj4SystemInfo.cmake \
+			Proj4Utilities.cmake   \
+			proj_config.cmake.in \
+			Proj4Config.cmake \
+			Proj4Mac.cmake \
+			Proj4Test.cmake \
+			Proj4Version.cmake
+
 all: all-am
 
 .SUFFIXES:
@@ -179,9 +187,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu jniwrap/org/proj4/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu cmake/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu jniwrap/org/proj4/Makefile
+	  $(AUTOMAKE) --gnu cmake/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -257,10 +265,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/cmake/Proj4Config.cmake b/cmake/Proj4Config.cmake
new file mode 100644
index 0000000..e9aa1de
--- /dev/null
+++ b/cmake/Proj4Config.cmake
@@ -0,0 +1,38 @@
+################################################################################
+# SociConfig.cmake - CMake build configuration of SOCI library
+################################################################################
+# Copyright (C) 2010 Mateusz Loskot <mateusz at loskot.net>
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+################################################################################
+include (CheckIncludeFiles)
+include (CheckLibraryExists) 
+
+# check needed include file
+check_include_files (dlfcn.h HAVE_DLFCN_H)
+check_include_files (inttypes.h HAVE_INTTYPES_H)
+check_include_files (jni.h HAVE_JNI_H)
+check_include_files (memory.h HAVE_MEMORY_H)
+check_include_files (stdint.h HAVE_STDINT_H)
+check_include_files (stdlib.h HAVE_STDLIB_H)
+check_include_files (string.h HAVE_STRING_H)
+check_include_files (sys/stat.h HAVE_SYS_STAT_H)
+check_include_files (sys/types.h HAVE_SYS_TYPES_H)
+check_include_files (unistd.h HAVE_UNISTD_H)
+check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
+
+# check libm need on unix 
+check_library_exists(m ceil "" HAVE_LIBM) 
+
+set(PACKAGE "proj")
+set(PACKAGE_BUGREPORT "warmerdam at pobox.com")
+set(PACKAGE_NAME "PROJ.4 Projections")
+set(PACKAGE_STRING "PROJ.4 Projections ${${PROJECT_INTERN_NAME}_VERSION}")
+set(PACKAGE_TARNAME "proj")
+set(PACKAGE_VERSION "${${PROJECT_INTERN_NAME}_VERSION}")
+
+configure_file(cmake/proj_config.cmake.in src/proj_config.h)
+
+
diff --git a/cmake/Proj4InstallPath.cmake b/cmake/Proj4InstallPath.cmake
new file mode 100644
index 0000000..da1491c
--- /dev/null
+++ b/cmake/Proj4InstallPath.cmake
@@ -0,0 +1,67 @@
+#----------------------------------------------
+# installation path settings
+#----------------------------------------------
+if(WIN32)
+  if(DEFINED ENV{OSGEO4W_ROOT})
+    set(OSGEO4W_ROOT_DIR $ENV{OSGEO4W_ROOT})
+  else()
+    set(OSGEO4W_ROOT_DIR c:/OSGeo4W)
+  endif()
+  set(DEFAULT_PROJ_ROOT_DIR ${OSGEO4W_ROOT_DIR})
+endif()
+if(UNIX)
+  set(DEFAULT_PROJ_ROOT_DIR "/usr/local/")
+endif(UNIX)
+
+
+IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+	SET(CMAKE_INSTALL_PREFIX ${DEFAULT_PROJ_ROOT_DIR} CACHE PATH "Foo install
+		 prefix" FORCE)
+ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
+#TODO 
+# for data install testing the PROJ_LIB envVar
+
+if(WIN32)
+  set(DEFAULT_BIN_SUBDIR bin)
+  set(DEFAULT_LIB_SUBDIR local/lib)
+  set(DEFAULT_DATA_SUBDIR share)
+  set(DEFAULT_INCLUDE_SUBDIR local/include)
+  set(DEFAULT_DOC_SUBDIR share/doc/proj)
+else()
+  # Common locatoins for Unix and Mac OS X
+  set(DEFAULT_BIN_SUBDIR bin)
+  set(DEFAULT_LIB_SUBDIR lib)
+  set(DEFAULT_DATA_SUBDIR share/proj)
+  set(DEFAULT_DOC_SUBDIR doc/proj)
+  set(DEFAULT_INCLUDE_SUBDIR include)
+endif()
+
+# Locations are changeable by user to customize layout of PDAL installation
+# (default values are platform-specific)
+set(PROJ_BIN_SUBDIR ${DEFAULT_BIN_SUBDIR} CACHE STRING
+  "Subdirectory where executables will be installed")
+set(PROJ_LIB_SUBDIR ${DEFAULT_LIB_SUBDIR} CACHE STRING
+  "Subdirectory where libraries will be installed")
+set(PROJ_INCLUDE_SUBDIR ${DEFAULT_INCLUDE_SUBDIR} CACHE STRING
+  "Subdirectory where header files will be installed")
+set(PROJ_DATA_SUBDIR ${DEFAULT_DATA_SUBDIR} CACHE STRING
+  "Subdirectory where data will be installed")
+set(PROJ_DOC_SUBDIR ${DEFAULT_DOC_SUBDIR} CACHE STRING
+  "Subdirectory where data will be installed")
+
+# Mark *DIR variables as advanced and dedicated to use by power-users only.
+mark_as_advanced(PROJ_ROOT_DIR
+                 PROJ_BIN_SUBDIR
+                 PROJ_LIB_SUBDIR 
+                 PROJ_INCLUDE_SUBDIR 
+                 PROJ_DATA_SUBDIR
+                 PROJ_DOC_SUBDIR )
+
+set(DEFAULT_BINDIR "${PROJ_BIN_SUBDIR}")
+set(DEFAULT_LIBDIR "${PROJ_LIB_SUBDIR}")
+set(DEFAULT_DATADIR "${PROJ_DATA_SUBDIR}")
+set(DEFAULT_DOCDIR "${PROJ_DOC_SUBDIR}")
+set(DEFAULT_INCLUDEDIR "${PROJ_INCLUDE_SUBDIR}")
+
+
diff --git a/cmake/Proj4Mac.cmake b/cmake/Proj4Mac.cmake
new file mode 100644
index 0000000..2f09fa2
--- /dev/null
+++ b/cmake/Proj4Mac.cmake
@@ -0,0 +1,24 @@
+if(APPLE)
+set(FRAMEWORKDIR "Library/Frameworks" CACHE PATH "the path to install framework")
+  set(BUNDLEDIR "Applications/OSGEO" CACHE PATH "the path to install bundle")
+  file(RELATIVE_PATH  BUNDLE_FRAME_REL_PATH_AAA "/${FRAMEWORKDIR}" "/aaa")
+  string(LENGTH ${BUNDLE_FRAME_REL_PATH_AAA} AAA_LENGTH)
+  math(EXPR RELATIVE_PATH_LENGTH "${AAA_LENGTH}-4")
+  string(SUBSTRING ${BUNDLE_FRAME_REL_PATH_AAA} 0 ${RELATIVE_PATH_LENGTH} BUNDLE_FRAME_REL_PATH)
+  set(PROJ_INSTALL_NAME_DIR "@executable_path/${BUNDLE_FRAME_REL_PATH}/${FRAMEWORKDIR}" )
+else(APPLE)
+  set(FRAMEWORKDIR "")
+  set(BUNDLEDIR "")
+  set(PROJ_INSTALL_NAME_DIR "")
+endif(APPLE)
+
+set(PROJ_RESOURCES "" )
+
+if(APPLE)
+   option(BUILD_FRAMEWORKS_AND_BUNDLE "if set to ON, build a library framework and application bundle,
+         otherwise install classical UNIX bin/lib" ON )
+   set(DEFAULT_BINDIR ${BUNDLEDIR})
+   boost_report_value(BUNDLEDIR)
+   boost_report_value(PROJ_INSTALL_NAME_DIR)
+   boost_report_value(FRAMEWORKDIR)
+endif(APPLE)
diff --git a/cmake/Proj4SystemInfo.cmake b/cmake/Proj4SystemInfo.cmake
new file mode 100644
index 0000000..68c4227
--- /dev/null
+++ b/cmake/Proj4SystemInfo.cmake
@@ -0,0 +1,77 @@
+################################################################################
+# SociSystemInfo.cmake - part of CMake configuration of Proj.4 library
+#
+# Based on idea taken from http://code.google.com/p/softart/ project
+################################################################################
+# Copyright (C) 2010 Mateusz Loskot <mateusz at loskot.net>
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+################################################################################
+# The following variables are defined:
+#   PROJ_COMPILER_NAME - name of compiler toolset, follows Boost toolset naming.
+#   PROJ_PLATFORM_NAME - target platform name: x64, x86 or win32
+################################################################################
+
+set(PROJ_COMPILER_NAME)
+set(PROJ_PLATFORM_NAME)
+
+if(MINGW OR UNIX)
+  exec_program(gcc ARGS -dumpversion OUTPUT_VARIABLE GCC_VERSION)
+  string(REPLACE "." "" GCC_VERSION_STR_FULL ${GCC_VERSION})
+  string(REGEX MATCH "[0-9]+\\.[0-9]+" GCC_VERSION_MAJOR_MINOR ${GCC_VERSION})
+endif()
+
+if(WIN32)
+  # Compilers, taken from http://predef.sourceforge.net/precomp.html#sec34
+  if(MSVC)
+    if(MSVC_VERSION EQUAL 1200)
+      set(PROJ_COMPILER_NAME "msvc-6.0")
+    endif()
+    if(MSVC_VERSION EQUAL 1300)
+      set(PROJ_COMPILER_NAME "msvc-7.0")
+    endif()
+    if(MSVC_VERSION EQUAL 1310)
+      set(PROJ_COMPILER_NAME "msvc-7.1") #Visual Studio 2003
+    endif()
+    if(MSVC_VERSION EQUAL 1400)
+      set(PROJ_COMPILER_NAME "msvc-8.0") #Visual Studio 2005
+    endif()
+    if(MSVC_VERSION EQUAL 1500)
+      set(PROJ_COMPILER_NAME "msvc-9.0") #Visual Studio 2008
+    endif()
+    if(MSVC_VERSION EQUAL 1600)
+      set(PROJ_COMPILER_NAME "msvc-10.0") #Visual Studio 2010
+    endif()
+  endif(MSVC)
+  
+  if(MINGW)
+    set(PROJ_COMPILER_NAME "mingw-${GCC_VERSION}")
+  endif( MINGW )
+  
+  if(CMAKE_GENERATOR MATCHES "Win64")
+    set(PROJ_PLATFORM_NAME "x64")
+  else()
+    set(PROJ_PLATFORM_NAME "win32")
+  endif()
+endif(WIN32)
+
+if(UNIX)
+  set(PROJ_COMPILER_NAME "gcc-${GCC_VERSION}")
+  if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+    set(PROJ_PLATFORM_NAME "x64")
+  else()
+    set(PROJ_PLATFORM_NAME "x86")
+  endif()
+endif(UNIX)
+
+if(NOT PROJ_COMPILER_NAME)
+  colormsg(_RED_ "WARNING:")
+  colormsg(RED "Could not determine compiler toolset name to set PROJ_COMPILER_NAME variable.")
+endif()
+
+if(NOT PROJ_COMPILER_NAME)
+  colormsg(_RED_ "WARNING:")
+  colormsg(RED "Could not determine platform name to set PROJ_COMPILER_NAME variable.")
+endif()
diff --git a/cmake/Proj4Test.cmake b/cmake/Proj4Test.cmake
new file mode 100644
index 0000000..7a0270c
--- /dev/null
+++ b/cmake/Proj4Test.cmake
@@ -0,0 +1,32 @@
+#
+# add test with sh script
+#
+
+function(proj_add_test_script_sh SH_NAME BIN_USE)
+  if(UNIX)
+    get_filename_component(testname ${SH_NAME} NAME_WE)
+    
+    set(TEST_OK 1)
+    if(ARGV2)
+         set(TEST_OK 0)
+         set(GRID_FULLNAME ${PROJECT_SOURCE_DIR}/nad/${ARGV2})
+         if(EXISTS ${GRID_FULLNAME})
+            set(TEST_OK 1)
+         endif(EXISTS ${GRID_FULLNAME})
+    endif(ARGV2)
+    
+    if( CMAKE_MINOR_VERSION LESS 8  OR CMAKE_PATCH_VERSION LESS 4 )
+       set(TEST_OK 0)
+       message(STATUS "test with bash script need a cmake version > 2.8.3 ")
+    endif()
+ 
+    if(${TEST_OK})
+      add_test( NAME "${testname}"
+                WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/nad
+                COMMAND  ${PROJECT_SOURCE_DIR}/nad/${SH_NAME} 
+                         ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}} 
+               )
+    endif(${TEST_OK})
+    
+  endif(UNIX)
+endfunction()
diff --git a/cmake/Proj4Utilities.cmake b/cmake/Proj4Utilities.cmake
new file mode 100644
index 0000000..24b6170
--- /dev/null
+++ b/cmake/Proj4Utilities.cmake
@@ -0,0 +1,456 @@
+################################################################################
+# SociUtilities.cmake - part of CMake configuration of Proj4 library
+#
+# Based on BoostUtilities.cmake from CMake configuration for Boost
+################################################################################
+# Copyright (C) 2007 Douglas Gregor <doug.gregor at gmail.com>
+# Copyright (C) 2007 Troy Straszheim
+# Copyright (C) 2010 Mateusz Loskot <mateusz at loskot.net> 
+#
+# Distributed under the Boost Software License, Version 1.0.
+# See accompanying file LICENSE_1_0.txt or copy at
+#   http://www.boost.org/LICENSE_1_0.txt
+################################################################################
+# Macros in this module:
+#
+#   list_contains: Determine whether a string value is in a list.
+#
+#   car: Return the first element in a list
+#
+#   cdr: Return all but the first element in a list
+#
+#   parse_arguments: Parse keyword arguments for use in other macros.
+#
+#   proj_report_directory_property
+#
+#   proj_target_output_name: 
+#
+################################################################################
+
+# This utility macro determines whether a particular string value
+# occurs within a list of strings:
+#
+#  list_contains(result string_to_find arg1 arg2 arg3 ... argn)
+# 
+# This macro sets the variable named by result equal to TRUE if
+# string_to_find is found anywhere in the following arguments.
+macro(list_contains var value)
+  set(${var})
+  foreach (value2 ${ARGN})
+    if (${value} STREQUAL ${value2})
+      set(${var} TRUE)
+    endif (${value} STREQUAL ${value2})
+  endforeach (value2)
+endmacro(list_contains)
+
+# This utility macro extracts the first argument from the list of
+# arguments given, and places it into the variable named var.
+#
+#   car(var arg1 arg2 ...)
+macro(car var)
+  set(${var} ${ARGV1})
+endmacro(car)
+
+# This utility macro extracts all of the arguments given except the
+# first, and places them into the variable named var.
+#
+#   car(var arg1 arg2 ...)
+macro(cdr var junk)
+  set(${var} ${ARGN})
+endmacro(cdr)
+
+# The parse_arguments macro will take the arguments of another macro and
+# define several variables. The first argument to parse_arguments is a
+# prefix to put on all variables it creates. The second argument is a
+# list of names, and the third argument is a list of options. Both of
+# these lists should be quoted. The rest of parse_arguments are
+# arguments from another macro to be parsed.
+# 
+#     parse_arguments(prefix arg_names options arg1 arg2...) 
+# 
+# For each item in options, parse_arguments will create a variable with
+# that name, prefixed with prefix_. So, for example, if prefix is
+# MY_MACRO and options is OPTION1;OPTION2, then parse_arguments will
+# create the variables MY_MACRO_OPTION1 and MY_MACRO_OPTION2. These
+# variables will be set to true if the option exists in the command line
+# or false otherwise.
+# 
+# For each item in arg_names, parse_arguments will create a variable
+# with that name, prefixed with prefix_. Each variable will be filled
+# with the arguments that occur after the given arg_name is encountered
+# up to the next arg_name or the end of the arguments. All options are
+# removed from these lists. parse_arguments also creates a
+# prefix_DEFAULT_ARGS variable containing the list of all arguments up
+# to the first arg_name encountered.
+macro(parse_arguments prefix arg_names option_names)
+  set(DEFAULT_ARGS)
+  foreach(arg_name ${arg_names})
+    set(${prefix}_${arg_name})
+  endforeach(arg_name)
+  foreach(option ${option_names})
+    set(${prefix}_${option} FALSE)
+  endforeach(option)
+
+  set(current_arg_name DEFAULT_ARGS)
+  set(current_arg_list)
+  foreach(arg ${ARGN})
+    list_contains(is_arg_name ${arg} ${arg_names})
+    if (is_arg_name)
+      set(${prefix}_${current_arg_name} ${current_arg_list})
+      set(current_arg_name ${arg})
+      set(current_arg_list)
+    else (is_arg_name)
+      list_contains(is_option ${arg} ${option_names})
+      if (is_option)
+        set(${prefix}_${arg} TRUE)
+      else (is_option)
+        set(current_arg_list ${current_arg_list} ${arg})
+      endif (is_option)
+    endif (is_arg_name)
+  endforeach(arg)
+  set(${prefix}_${current_arg_name} ${current_arg_list})
+endmacro(parse_arguments)
+
+# Perform a reverse topological sort on the given LIST. 
+#   
+#   topological_sort(my_list "MY_" "_EDGES")
+#
+# LIST is the name of a variable containing a list of elements to be
+# sorted in reverse topological order. Each element in the list has a
+# set of outgoing edges (for example, those other list elements that
+# it depends on). In the resulting reverse topological ordering
+# (written back into the variable named LIST), an element will come
+# later in the list than any of the elements that can be reached by
+# following its outgoing edges and the outgoing edges of any vertices
+# they target, recursively. Thus, if the edges represent dependencies
+# on build targets, for example, the reverse topological ordering is
+# the order in which one would build those targets.
+#
+# For each element E in this list, the edges for E are contained in
+# the variable named ${PREFIX}${E}${SUFFIX}, where E is the
+# upper-cased version of the element in the list. If no such variable
+# exists, then it is assumed that there are no edges. For example, if
+# my_list contains a, b, and c, one could provide a dependency graph
+# using the following variables:
+#
+#     MY_A_EDGES     b
+#     MY_B_EDGES     
+#     MY_C_EDGES     a b
+#
+#  With the involcation of topological_sort shown above and these
+#  variables, the resulting reverse topological ordering will be b, a,
+#  c.
+function(topological_sort LIST PREFIX SUFFIX)
+  # Clear the stack and output variable
+  set(VERTICES "${${LIST}}")
+  set(STACK)
+  set(${LIST})
+
+  # Loop over all of the vertices, starting the topological sort from
+  # each one.
+  foreach(VERTEX ${VERTICES})
+    string(TOUPPER ${VERTEX} UPPER_VERTEX)
+
+    # If we haven't already processed this vertex, start a depth-first
+    # search from where.
+    if (NOT FOUND_${UPPER_VERTEX})
+      # Push this vertex onto the stack with all of its outgoing edges
+      string(REPLACE ";" " " NEW_ELEMENT 
+        "${VERTEX};${${PREFIX}${UPPER_VERTEX}${SUFFIX}}")
+      list(APPEND STACK ${NEW_ELEMENT})
+
+      # We've now seen this vertex
+      set(FOUND_${UPPER_VERTEX} TRUE)
+
+      # While the depth-first search stack is not empty
+      list(LENGTH STACK STACK_LENGTH)
+      while(STACK_LENGTH GREATER 0)
+        # Remove the vertex and its remaining out-edges from the top
+        # of the stack
+        list(GET STACK -1 OUT_EDGES)
+        list(REMOVE_AT STACK -1)
+
+        # Get the source vertex and the list of out-edges
+        separate_arguments(OUT_EDGES)
+        list(GET OUT_EDGES 0 SOURCE)
+        list(REMOVE_AT OUT_EDGES 0)
+
+        # While there are still out-edges remaining
+        list(LENGTH OUT_EDGES OUT_DEGREE)
+        while (OUT_DEGREE GREATER 0)
+          # Pull off the first outgoing edge
+          list(GET OUT_EDGES 0 TARGET)
+          list(REMOVE_AT OUT_EDGES 0)
+
+          string(TOUPPER ${TARGET} UPPER_TARGET)
+          if (NOT FOUND_${UPPER_TARGET})
+            # We have not seen the target before, so we will traverse
+            # its outgoing edges before coming back to our
+            # source. This is the key to the depth-first traversal.
+
+            # We've now seen this vertex
+            set(FOUND_${UPPER_TARGET} TRUE)
+
+            # Push the remaining edges for the current vertex onto the
+            # stack
+            string(REPLACE ";" " " NEW_ELEMENT 
+              "${SOURCE};${OUT_EDGES}")
+            list(APPEND STACK ${NEW_ELEMENT})
+
+            # Setup the new source and outgoing edges
+            set(SOURCE ${TARGET})
+            string(TOUPPER ${SOURCE} UPPER_SOURCE)
+            set(OUT_EDGES 
+              ${${PREFIX}${UPPER_SOURCE}${SUFFIX}})
+          endif(NOT FOUND_${UPPER_TARGET})
+
+          list(LENGTH OUT_EDGES OUT_DEGREE)
+        endwhile (OUT_DEGREE GREATER 0)
+
+        # We have finished all of the outgoing edges for
+        # SOURCE; add it to the resulting list.
+        list(APPEND ${LIST} ${SOURCE})
+
+        # Check the length of the stack
+        list(LENGTH STACK STACK_LENGTH)
+      endwhile(STACK_LENGTH GREATER 0)
+    endif (NOT FOUND_${UPPER_VERTEX})
+  endforeach(VERTEX)
+
+  set(${LIST} ${${LIST}} PARENT_SCOPE)
+endfunction(topological_sort)
+
+# Small little hack that tweaks a component name (as used for CPack)
+# to make sure to avoid certain names that cause problems. Sets the
+# variable named varname to the "sanitized" name.
+#
+# FIXME: This is a complete hack. We probably need to fix the CPack
+# generators (NSIS in particular) to get rid of the need for this.
+macro(fix_cpack_component_name varname name)
+  if (${name} STREQUAL "foreach")
+    set(${varname} "boost_foreach")
+  else()
+    set(${varname} ${name})
+  endif()
+endmacro()
+
+
+#
+# A big shout out to the cmake gurus @ compiz
+#
+
+function (colormsg)
+  string (ASCII 27 _escape)
+  set(WHITE "29")
+  set(GRAY "30")
+  set(RED "31")
+  set(GREEN "32")
+  set(YELLOW "33")
+  set(BLUE "34")
+  set(MAG "35")
+  set(CYAN "36")
+
+  foreach (color WHITE GRAY RED GREEN YELLOW BLUE MAG CYAN)
+    set(HI${color} "1\;${${color}}")
+    set(LO${color} "2\;${${color}}")
+    set(_${color}_ "4\;${${color}}")
+    set(_HI${color}_ "1\;4\;${${color}}")
+    set(_LO${color}_ "2\;4\;${${color}}")
+  endforeach()
+
+  set(str "")
+  set(coloron FALSE)
+  foreach(arg ${ARGV})
+    if (NOT ${${arg}} STREQUAL "")
+      if (CMAKE_COLOR_MAKEFILE)
+        set(str "${str}${_escape}[${${arg}}m")
+        set(coloron TRUE)
+      endif()
+    else()
+      set(str "${str}${arg}")
+      if (coloron)
+        set(str "${str}${_escape}[0m")
+        set(coloron FALSE)
+      endif()
+      set(str "${str} ")
+    endif()
+  endforeach()
+  message(STATUS ${str})
+endfunction()
+
+# colormsg("Colors:"  
+#   WHITE "white" GRAY "gray" GREEN "green" 
+#   RED "red" YELLOW "yellow" BLUE "blue" MAG "mag" CYAN "cyan" 
+#   _WHITE_ "white" _GRAY_ "gray" _GREEN_ "green" 
+#   _RED_ "red" _YELLOW_ "yellow" _BLUE_ "blue" _MAG_ "mag" _CYAN_ "cyan" 
+#   _HIWHITE_ "white" _HIGRAY_ "gray" _HIGREEN_ "green" 
+#   _HIRED_ "red" _HIYELLOW_ "yellow" _HIBLUE_ "blue" _HIMAG_ "mag" _HICYAN_ "cyan" 
+#   HIWHITE "white" HIGRAY "gray" HIGREEN "green" 
+#   HIRED "red" HIYELLOW "yellow" HIBLUE "blue" HIMAG "mag" HICYAN "cyan" 
+#   "right?")
+
+#
+#  pretty-prints the value of a variable so that the 
+#  equals signs align
+#
+
+function(boost_report_value NAME)
+  string(LENGTH "${NAME}" varlen)
+  # LOG
+  #message(STATUS "boost_report_value: NAME=${NAME} (${varlen})")
+  #message(STATUS "boost_report_value: \${NAME}=${${NAME}}")
+  math(EXPR padding_len 40-${varlen})
+  string(SUBSTRING "                                      " 
+    0 ${padding_len} varpadding)
+  colormsg("${NAME}${varpadding} = ${${NAME}}")
+endfunction()
+
+function(trace NAME)
+  if(BOOST_CMAKE_TRACE)
+    string(LENGTH "${NAME}" varlen)
+    math(EXPR padding_len 40-${varlen})
+    string(SUBSTRING "........................................"
+      0 ${padding_len} varpadding)
+    message("${NAME} ${varpadding} ${${NAME}}")
+  endif()
+endfunction()  
+
+#
+#  pretty-prints the value of a variable so that the 
+#  equals signs align
+#
+function(boost_report_pretty PRETTYNAME VARNAME)
+  string(LENGTH "${PRETTYNAME}" varlen)
+  math(EXPR padding_len 30-${varlen})
+  string(SUBSTRING "                                      " 
+    0 ${padding_len} varpadding)
+  message(STATUS "${PRETTYNAME}${varpadding} = ${${VARNAME}}")
+endfunction()
+
+#
+#  assert that ARG is actually a library target
+#
+
+macro(dependency_check ARG)
+  trace(ARG)
+  if (NOT "${ARG}" STREQUAL "")
+    get_target_property(deptype ${ARG} TYPE)
+    if(NOT deptype MATCHES ".*_LIBRARY$")
+      set(DEPENDENCY_OKAY FALSE)
+      list(APPEND DEPENDENCY_FAILURES ${ARG})
+    endif()
+  endif()
+endmacro()
+
+
+
+#
+# Pretty-print of given property of current directory.
+#
+macro(proj_report_directory_property PROPNAME)
+  get_directory_property(${PROPNAME} ${PROPNAME})
+  boost_report_value(${PROPNAME})
+endmacro()
+
+#
+# Scans the current directory and returns a list of subdirectories.
+# Author: Robert Fleming
+# Source: http://www.cmake.org/pipermail/cmake/2008-February/020114.html
+#
+# Third parameter is 1 if you want relative paths returned.
+# Usage: list_subdirectories(the_list_is_returned_here /path/to/project TRUE)
+#
+
+macro(list_subdirectories retval curdir return_relative)
+  file(GLOB sub-dir RELATIVE ${curdir} *)
+  set(list_of_dirs "")
+  foreach(dir ${sub-dir})
+    if(IS_DIRECTORY ${curdir}/${dir})
+      if (${return_relative})
+        set(list_of_dirs ${list_of_dirs} ${dir})
+      else()
+        set(list_of_dirs ${list_of_dirs} ${curdir}/${dir})
+      endif()
+    endif()
+  endforeach()
+  set(${retval} ${list_of_dirs})
+endmacro()
+
+#
+# Generates output name for given target depending on platform and version.
+# For instance, on Windows, libraries get ABI version suffix soci_coreXY.{dll|lib}.
+#
+
+function(proj_target_output_name TARGET_NAME OUTPUT_NAME)
+  if(NOT DEFINED TARGET_NAME)
+    message(SEND_ERROR "Error, the variable TARGET_NAME is not defined!")
+  endif()
+
+  if(NOT DEFINED ${PROJECT_INTERN_NAME}_VERSION)
+    message(SEND_ERROR "Error, the variable ${${PROJECT_INTERN_NAME}_VERSION} is not defined!")
+  endif()
+
+  # On Windows, ABI version is specified using binary file name suffix.
+  # On Unix, suffix is empty and SOVERSION is used instead.
+  if (WIN32)
+    string(LENGTH "${${PROJECT_INTERN_NAME}_ABI_VERSION}" abilen)
+    if(abilen GREATER 0)
+      set(SUFFIX "_${${PROJECT_INTERN_NAME}_ABI_VERSION}")
+    endif()
+  endif()
+
+  set(${OUTPUT_NAME} ${TARGET_NAME}${SUFFIX} PARENT_SCOPE)
+endfunction()
+
+
+#
+# conversion from lla name to lla convert name ( without lla extension)
+#
+
+function(proj_lla_output_name LLA_INPUT_NAME LLA_OUTPUT_NAME  )
+    get_filename_component(filename ${LLA_INPUT_NAME} NAME_WE)
+    get_filename_component(pathname ${LLA_INPUT_NAME} PATH)
+    set(${LLA_OUTPUT_NAME} ${pathname}/${filename} PARENT_SCOPE)
+        set(${LLA_OUTPUT_NAME} ${pathname}/${filename} PARENT_SCOPE)
+endfunction()
+
+function(proj_lla_target_name LLA_INPUT_NAME  LLA_TARGET )
+    get_filename_component(filename ${LLA_INPUT_NAME} NAME_WE)
+    set(${LLA_TARGET} ${filename} PARENT_SCOPE)
+endfunction()
+
+#
+# in place conversion of lla file to gsb 
+#
+
+function(proj_convert_grid_lla2gsb GRID_DIRECTORY) 
+    set(NAD2BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+    set(NAD2BIN_PATH ${NAD2BIN_DIR}/nad2bin${CMAKE_EXECUTABLE_SUFFIX})
+    file(TO_NATIVE_PATH ${NAD2BIN_PATH} NAD2BIN_EXE)
+    file(GLOB LLA_FILES  ${${GRID_DIRECTORY}}/*.lla)
+    foreach(LLA ${LLA_FILES} )
+        proj_lla_output_name(${LLA} DEST_FILE)
+        file(TO_NATIVE_PATH ${DEST_FILE} DEST)
+        proj_lla_target_name(${LLA} LLA_TARGET)
+        if(NOT EXISTS ${DEST})
+            add_custom_target( ${LLA_TARGET} ALL
+               COMMAND ${NAD2BIN_EXE} ${DEST} "<" ${LLA}
+               DEPENDS nad2bin )
+        endif(NOT EXISTS ${DEST})
+    endforeach(LLA)
+endfunction()
+
+#
+# add lla output list to an existing file list
+#
+
+function(proj_append_lla_output_file LLA_INPUT_FILE  FILE_LIST)
+     set(LIST_OUT ${${FILE_LIST}})
+     foreach(LLA ${${LLA_INPUT_FILE}} )
+        proj_lla_output_name(${LLA} DEST_FILE)
+        file(TO_NATIVE_PATH ${DEST_FILE} DEST)
+        set(LIST_OUT ${LIST_OUT} ${DEST_FILE} )
+    endforeach(LLA ${LLA_INPUT_FILE})
+    set(${FILE_LIST} ${LIST_OUT} PARENT_SCOPE)
+endfunction()
+
diff --git a/cmake/Proj4Version.cmake b/cmake/Proj4Version.cmake
new file mode 100644
index 0000000..72db431
--- /dev/null
+++ b/cmake/Proj4Version.cmake
@@ -0,0 +1,59 @@
+################################################################################
+# Proj4Version.cmake - part of CMake configuration of Proj4 library
+################################################################################
+# Copyright (C) 2010 Mateusz Loskot <mateusz at loskot.net>
+#
+# Distributed under the Boost Software License, Version 1.0
+################################################################################
+# Macros in this module:
+#   
+#   proj_version - defines version information for PROJ library
+#   (best known as PROJ4 because MAJOR version is 4 since a very long time) 
+################################################################################
+
+# Defines version information for PROJ library
+#
+# proj_version(MAJOR major_version MINOR minor_version PATCH patch_level)
+#
+#    MAJOR.MINOR version is used to set SOVERSION
+#
+
+macro(proj_version)
+  parse_arguments(THIS_VERSION "MAJOR;MINOR;PATCH;"
+    ""
+    ${ARGN})
+
+  # Set version components
+  set(${PROJECT_INTERN_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR})
+  set(${PROJECT_INTERN_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR})
+  set(${PROJECT_INTERN_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH})
+
+  # Set VERSION string
+  set(${PROJECT_INTERN_NAME}_VERSION
+    "${${PROJECT_INTERN_NAME}_VERSION_MAJOR}.${${PROJECT_INTERN_NAME}_VERSION_MINOR}.${${PROJECT_INTERN_NAME}_VERSION_PATCH}")
+
+  # Set SOVERSION based on major and minor
+  set(${PROJECT_INTERN_NAME}_SOVERSION
+    "${${PROJECT_INTERN_NAME}_VERSION_MAJOR}.${${PROJECT_INTERN_NAME}_VERSION_MINOR}")
+
+  # Set ABI version string used to name binary output 
+  # On Windows, ABI version is specified using binary file name suffix.
+  # On Unix, suffix ix empty and SOVERSION is used instead.
+  if (UNIX)
+    set(${PROJECT_INTERN_NAME}_ABI_VERSION ${${PROJECT_INTERN_NAME}_SOVERSION})
+  elseif(WIN32)
+    set(${PROJECT_INTERN_NAME}_ABI_VERSION
+      "${${PROJECT_INTERN_NAME}_VERSION_MAJOR}_${${PROJECT_INTERN_NAME}_VERSION_MINOR}")
+  else()
+    message(FATAL_ERROR "Ambiguous target platform with unknown ABI version scheme. Giving up.")
+  endif()
+
+  message(STATUS "")
+  boost_report_value(${PROJECT_INTERN_NAME}_VERSION)
+  if(UNIX)
+    boost_report_value(${PROJECT_INTERN_NAME}_SOVERSION)
+  endif(UNIX)
+  if(WIN32)
+    boost_report_value(${PROJECT_INTERN_NAME}_ABI_VERSION)
+  endif(WIN32)
+endmacro()
diff --git a/cmake/proj_config.cmake.in b/cmake/proj_config.cmake.in
new file mode 100644
index 0000000..8f782a7
--- /dev/null
+++ b/cmake/proj_config.cmake.in
@@ -0,0 +1,62 @@
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#cmakedefine HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#cmakedefine HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <jni.h> header file. */
+#cmakedefine HAVE_JNI_H 1
+
+/* Define to 1 if you have the `m' library (-lm). */
+#cmakedefine HAVE_LIBM 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+#cmakedefine HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#cmakedefine HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#cmakedefine HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#cmakedefine HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#cmakedefine HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#cmakedefine HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#cmakedefine HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#cmakedefine HAVE_UNISTD_H 1
+
+/* Enabled for Java/JNI Support */
+#cmakedefine JNI_ENABLED 1
+
+/* Name of package */
+#cmakedefine PACKAGE "${PACKAGE}"
+
+/* Define to the address where bug reports for this package should be sent. */
+#cmakedefine PACKAGE_BUGREPORT "${PACKAGE_BUGREPORT}"
+
+/* Define to the full name of this package. */
+#cmakedefine PACKAGE_NAME "${PACKAGE_NAME}"
+
+/* Define to the full name and version of this package. */
+#cmakedefine PACKAGE_STRING "${PACKAGE_STRING}"
+
+/* Define to the one symbol short name of this package. */
+#cmakedefine PACKAGE_TARNAME "${PACKAGE_TARNAME}"
+
+/* Define to the version of this package. */
+#cmakedefine PACKAGE_VERSION "${PACKAGE_VERSION}"
+
+/* Define to 1 if you have the ANSI C header files. */
+#cmakedefine STDC_HEADERS 1
+
+/* Version number of package */
+#cmakedefine VERSION "${VERSION}"
diff --git a/configure b/configure
index b9f78ee..a102e43 100755
--- a/configure
+++ b/configure
@@ -651,6 +651,7 @@ C_WFLAGS
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
+am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
@@ -1385,7 +1386,7 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic              try to use only PIC/non-PIC objects [default=use
+  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                           both]
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-sysroot=DIR Search for dependent libraries within DIR
@@ -2691,11 +2692,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
 
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
@@ -2779,6 +2780,7 @@ fi
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
  if test "x$enable_dependency_tracking" != xno; then
   AMDEP_TRUE=
@@ -3592,6 +3594,7 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -3651,7 +3654,7 @@ else
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -4327,6 +4330,7 @@ else
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -4386,7 +4390,7 @@ else
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -4492,8 +4496,8 @@ esac
 
 
 
-macro_version='2.4'
-macro_revision='1.3293'
+macro_version='2.4.2'
+macro_revision='1.3337'
 
 
 
@@ -5327,6 +5331,11 @@ else
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -5366,7 +5375,7 @@ else
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
 	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
@@ -5795,12 +5804,12 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -6435,13 +6444,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
 case $host_os in
@@ -6588,6 +6597,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -6976,7 +6986,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
@@ -6987,7 +6997,20 @@ sparc*-*solaris*)
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
@@ -7627,7 +7650,13 @@ else
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&5
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&5
@@ -7638,6 +7667,7 @@ else
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
 if ${lt_cv_ld_exported_symbols_list+:} false; then :
@@ -7670,6 +7700,7 @@ rm -f core conftest.err conftest.$ac_objext \
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
 $as_echo_n "checking for -force_load linker flag... " >&6; }
 if ${lt_cv_ld_force_load+:} false; then :
@@ -7691,7 +7722,9 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&5
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
 	lt_cv_ld_force_load=yes
       else
 	cat conftest.err >&5
@@ -8096,7 +8129,22 @@ fi
 
 # Check whether --with-pic was given.
 if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
+  withval=$with_pic; lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+	IFS="$lt_save_ifs"
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
 else
   pic_mode=default
 fi
@@ -8174,6 +8222,10 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
 
+
+
+
+
 test -z "$LN_S" && LN_S="ln -s"
 
 
@@ -8633,7 +8685,9 @@ lt_prog_compiler_static=
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       lt_prog_compiler_wl='-Xlinker '
-      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      if test -n "$lt_prog_compiler_pic"; then
+        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+      fi
       ;;
     esac
   else
@@ -8724,18 +8778,33 @@ lt_prog_compiler_static=
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ F* | *Sun*Fortran*)
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
 	  lt_prog_compiler_wl=''
 	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  lt_prog_compiler_pic='-KPIC'
 	  lt_prog_compiler_static='-Bstatic'
 	  lt_prog_compiler_wl='-Wl,'
 	  ;;
+        *Intel*\ [CF]*Compiler*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fPIC'
+	  lt_prog_compiler_static='-static'
+	  ;;
+	*Portland\ Group*)
+	  lt_prog_compiler_wl='-Wl,'
+	  lt_prog_compiler_pic='-fpic'
+	  lt_prog_compiler_static='-Bstatic'
+	  ;;
 	esac
 	;;
       esac
@@ -9097,7 +9166,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   hardcode_direct=no
   hardcode_direct_absolute=no
   hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
   hardcode_libdir_separator=
   hardcode_minus_L=no
   hardcode_shlibpath_var=unsupported
@@ -9141,6 +9209,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu | gnu*)
+    link_all_deplibs=no
+    ;;
   esac
 
   ld_shlibs=yes
@@ -9347,8 +9418,7 @@ _LT_EOF
 	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
+	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
 	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
@@ -9363,7 +9433,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -9540,6 +9610,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	link_all_deplibs=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -9727,6 +9798,7 @@ fi
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
 	enable_shared_with_static_runtimes=yes
+	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
 	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
 	# Don't use ranlib
 	old_postinstall_cmds='chmod 644 $oldlib'
@@ -9772,6 +9844,7 @@ fi
   hardcode_shlibpath_var=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
   else
     whole_archive_flag_spec=''
   fi
@@ -9800,10 +9873,6 @@ fi
       hardcode_shlibpath_var=no
       ;;
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -9816,7 +9885,7 @@ fi
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       hardcode_direct=yes
       hardcode_minus_L=yes
@@ -9855,7 +9924,6 @@ fi
       fi
       if test "$with_gnu_ld" = no; then
 	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
 	hardcode_libdir_separator=:
 	hardcode_direct=yes
 	hardcode_direct_absolute=yes
@@ -9996,7 +10064,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
       link_all_deplibs=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -10479,11 +10547,6 @@ esac
 
 
 
-
-
-
-
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
@@ -10573,7 +10636,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -10582,7 +10645,7 @@ aix3*)
   ;;
 
 aix[4-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -10647,7 +10710,7 @@ beos*)
   ;;
 
 bsdi[45]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -10786,7 +10849,7 @@ darwin* | rhapsody*)
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -10794,10 +10857,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -10805,7 +10864,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[123]*) objformat=aout ;;
+    freebsd[23].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -10823,7 +10882,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[01]* | freebsdelf3.[01]*)
@@ -10843,17 +10902,18 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -10914,7 +10974,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[3-9]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -10930,7 +10990,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -10967,9 +11027,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11032,6 +11092,18 @@ fi
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -11051,7 +11123,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -11120,7 +11192,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11145,7 +11217,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -11169,7 +11241,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -11200,7 +11272,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -11210,7 +11282,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -11992,6 +12064,8 @@ CC="$lt_save_CC"
 
 
 
+
+
         ac_config_commands="$ac_config_commands libtool"
 
 
@@ -12308,7 +12382,7 @@ fi
 MUTEX_SETTING=$MUTEX_SETTING
 
 
-ac_config_files="$ac_config_files Makefile src/Makefile man/Makefile man/man1/Makefile man/man3/Makefile nad/Makefile jniwrap/Makefile jniwrap/org/Makefile jniwrap/org/proj4/Makefile"
+ac_config_files="$ac_config_files Makefile cmake/Makefile src/Makefile man/Makefile man/man1/Makefile man/man3/Makefile nad/Makefile jniwrap/Makefile jniwrap/org/Makefile jniwrap/org/proj4/Makefile"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -13055,6 +13129,7 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
@@ -13137,7 +13212,6 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
@@ -13193,6 +13267,7 @@ _LTECHO_EOF'
 # Quote evaled strings.
 for var in SHELL \
 ECHO \
+PATH_SEPARATOR \
 SED \
 GREP \
 EGREP \
@@ -13243,7 +13318,6 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
 exclude_expsyms \
 include_expsyms \
@@ -13328,6 +13402,7 @@ do
     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
     "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "cmake/Makefile") CONFIG_FILES="$CONFIG_FILES cmake/Makefile" ;;
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
     "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
     "man/man1/Makefile") CONFIG_FILES="$CONFIG_FILES man/man1/Makefile" ;;
@@ -14047,8 +14122,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -14102,6 +14177,9 @@ SHELL=$lt_SHELL
 # An echo program that protects backslashes.
 ECHO=$lt_ECHO
 
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -14403,10 +14481,6 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
@@ -15447,6 +15521,7 @@ pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
 enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
 SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
 ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
 host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
 host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
 host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
@@ -15529,7 +15604,6 @@ with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
 allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
 no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
 hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
 hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
 hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
@@ -15585,6 +15659,7 @@ _LTECHO_EOF'
 # Quote evaled strings.
 for var in SHELL \
 ECHO \
+PATH_SEPARATOR \
 SED \
 GREP \
 EGREP \
@@ -15635,7 +15710,6 @@ with_gnu_ld \
 allow_undefined_flag \
 no_undefined_flag \
 hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
 hardcode_libdir_separator \
 exclude_expsyms \
 include_expsyms \
@@ -15721,6 +15795,7 @@ do
     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
     "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "cmake/Makefile") CONFIG_FILES="$CONFIG_FILES cmake/Makefile" ;;
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
     "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
     "man/man1/Makefile") CONFIG_FILES="$CONFIG_FILES man/man1/Makefile" ;;
@@ -16441,8 +16516,8 @@ $as_echo X"$file" |
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -16496,6 +16571,9 @@ SHELL=$lt_SHELL
 # An echo program that protects backslashes.
 ECHO=$lt_ECHO
 
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
 # The host system.
 host_alias=$host_alias
 host=$host
@@ -16797,10 +16875,6 @@ no_undefined_flag=$lt_no_undefined_flag
 # This must work even if \$libdir does not exist
 hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
 # Whether we need a single "-rpath" flag with a separated argument.
 hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
diff --git a/configure.in b/configure.in
index 5c7f157..d348a8c 100644
--- a/configure.in
+++ b/configure.in
@@ -99,7 +99,7 @@ fi
 
 AC_SUBST(MUTEX_SETTING,$MUTEX_SETTING)
 
-AC_OUTPUT(Makefile src/Makefile man/Makefile man/man1/Makefile \
+AC_OUTPUT(Makefile cmake/Makefile src/Makefile man/Makefile man/man1/Makefile \
 	man/man3/Makefile nad/Makefile \
 	jniwrap/Makefile jniwrap/org/Makefile jniwrap/org/proj4/Makefile)
 
diff --git a/jniwrap/Makefile.in b/jniwrap/Makefile.in
index 4ba0410..0918269 100644
--- a/jniwrap/Makefile.in
+++ b/jniwrap/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -456,10 +456,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/jniwrap/org/Makefile.in b/jniwrap/org/Makefile.in
index fa04307..dbf35ac 100644
--- a/jniwrap/org/Makefile.in
+++ b/jniwrap/org/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -455,10 +455,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/jniwrap/org/proj4/Makefile.in b/jniwrap/org/proj4/Makefile.in
index 94e1dbb..30dacd9 100644
--- a/jniwrap/org/proj4/Makefile.in
+++ b/jniwrap/org/proj4/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -257,10 +257,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/ltmain.sh b/ltmain.sh
index 3061e3c..c2852d8 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,9 +1,9 @@
 
-# libtool (GNU libtool) 2.4
+# libtool (GNU libtool) 2.4.2
 # Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 # This is free software; see the source for copying conditions.  There is NO
 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
@@ -41,6 +41,7 @@
 #       --quiet, --silent    don't print informational messages
 #       --no-quiet, --no-silent
 #                            print informational messages (default)
+#       --no-warn            don't display warning messages
 #       --tag=TAG            use configuration variables from tag TAG
 #   -v, --verbose            print more informational messages than default
 #       --no-verbose         don't print the extra informational messages
@@ -69,7 +70,7 @@
 #         compiler:		$LTCC
 #         compiler flags:		$LTCFLAGS
 #         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4
+#         $progname:	(GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1
 #         automake:	$automake_version
 #         autoconf:	$autoconf_version
 #
@@ -79,9 +80,9 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.4
+VERSION="2.4.2 Debian-2.4.2-1ubuntu1"
 TIMESTAMP=""
-package_revision=1.3293
+package_revision=1.3337
 
 # Be Bourne compatible
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -136,15 +137,10 @@ progpath="$0"
 
 : ${CP="cp -f"}
 test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${EGREP="grep -E"}
-: ${FGREP="grep -F"}
-: ${GREP="grep"}
-: ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -387,7 +383,7 @@ case $progpath in
      ;;
   *)
      save_IFS="$IFS"
-     IFS=:
+     IFS=${PATH_SEPARATOR-:}
      for progdir in $PATH; do
        IFS="$save_IFS"
        test -x "$progdir/$progname" && break
@@ -771,8 +767,8 @@ func_help ()
 	s*\$LTCFLAGS*'"$LTCFLAGS"'*
 	s*\$LD*'"$LD"'*
 	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
-	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
+	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
 	p
 	d
      }
@@ -1052,6 +1048,7 @@ opt_finish=false
 opt_help=false
 opt_help_all=false
 opt_silent=:
+opt_warning=:
 opt_verbose=:
 opt_silent=false
 opt_verbose=false
@@ -1120,6 +1117,10 @@ esac
 			opt_silent=false
 func_append preserve_args " $opt"
 			;;
+      --no-warning|--no-warn)
+			opt_warning=false
+func_append preserve_args " $opt"
+			;;
       --no-verbose)
 			opt_verbose=false
 func_append preserve_args " $opt"
@@ -2059,7 +2060,7 @@ func_mode_compile ()
     *.[cCFSifmso] | \
     *.ada | *.adb | *.ads | *.asm | \
     *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
       func_xform "$libobj"
       libobj=$func_xform_result
       ;;
@@ -3201,11 +3202,13 @@ func_mode_install ()
 
       # Set up the ranlib parameters.
       oldlib="$destdir/$name"
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
 
       func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
       if test -n "$stripme" && test -n "$old_striplib"; then
-	func_show_eval "$old_striplib $oldlib" 'exit $?'
+	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
       fi
 
       # Do each command in the postinstall commands.
@@ -3470,7 +3473,7 @@ static const void *lt_preloaded_setup() {
 	  # linked before any other PIC object.  But we must not use
 	  # pic_flag when linking with -static.  The problem exists in
 	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
 	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
 	  *-*-hpux*)
 	    pic_flag_for_symtable=" $pic_flag"  ;;
@@ -3982,14 +3985,17 @@ func_exec_program_core ()
 # launches target application with the remaining arguments.
 func_exec_program ()
 {
-  for lt_wr_arg
-  do
-    case \$lt_wr_arg in
-    --lt-*) ;;
-    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-    esac
-    shift
-  done
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
   func_exec_program_core \${1+\"\$@\"}
 }
 
@@ -5057,9 +5063,15 @@ void lt_dump_script (FILE* f)
 {
 EOF
 	    func_emit_wrapper yes |
-              $SED -e 's/\([\\"]\)/\\\1/g' \
-	           -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
-
+	      $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
             cat <<"EOF"
 }
 EOF
@@ -5643,7 +5655,8 @@ func_mode_link ()
 	continue
 	;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 	func_append compiler_flags " $arg"
 	func_append compile_command " $arg"
 	func_append finalize_command " $arg"
@@ -6111,7 +6124,10 @@ func_mode_link ()
 	case $pass in
 	dlopen) libs="$dlfiles" ;;
 	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	link)
+	  libs="$deplibs %DEPLIBS%"
+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+	  ;;
 	esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -6147,7 +6163,8 @@ func_mode_link ()
 	lib=
 	found=no
 	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 	  if test "$linkmode,$pass" = "prog,link"; then
 	    compile_deplibs="$deplib $compile_deplibs"
 	    finalize_deplibs="$deplib $finalize_deplibs"
@@ -6430,19 +6447,19 @@ func_mode_link ()
 	    # It is a libtool convenience library, so add in its objects.
 	    func_append convenience " $ladir/$objdir/$old_library"
 	    func_append old_convenience " $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+	      if $opt_preserve_dup_deps ; then
+		case "$tmp_libs " in
+		*" $deplib "*) func_append specialdeplibs " $deplib" ;;
+		esac
+	      fi
+	      func_append tmp_libs " $deplib"
+	    done
 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 	    func_fatal_error "\`$lib' is not a convenience library"
 	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done
 	  continue
 	fi # $pass = conv
 
@@ -6831,7 +6848,7 @@ func_mode_link ()
 	         test "$hardcode_direct_absolute" = no; then
 		add="$dir/$linklib"
 	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
+		add_dir="-L$absdir"
 		# Try looking first in the location we're being installed to.
 		if test -n "$inst_prefix_dir"; then
 		  case $libdir in
@@ -7316,6 +7333,7 @@ func_mode_link ()
 	  # which has an extra 1 added just for fun
 	  #
 	  case $version_type in
+	  # correct linux to gnu/linux during the next big refactor
 	  darwin|linux|osf|windows|none)
 	    func_arith $number_major + $number_minor
 	    current=$func_arith_result
@@ -7334,6 +7352,9 @@ func_mode_link ()
 	    revision="$number_minor"
 	    lt_irix_increment=no
 	    ;;
+	  *)
+	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+	    ;;
 	  esac
 	  ;;
 	no)
@@ -7432,7 +7453,7 @@ func_mode_link ()
 	  versuffix="$major.$revision"
 	  ;;
 
-	linux)
+	linux) # correct to gnu/linux during the next big refactor
 	  func_arith $current - $age
 	  major=.$func_arith_result
 	  versuffix="$major.$age.$revision"
@@ -8020,6 +8041,11 @@ EOF
 
       # Test again, we may have decided not to build it any more
       if test "$build_libtool_libs" = yes; then
+	# Remove ${wl} instances when linking with ld.
+	# FIXME: should test the right _cmds variable.
+	case $archive_cmds in
+	  *\$LD\ *) wl= ;;
+        esac
 	if test "$hardcode_into_libs" = yes; then
 	  # Hardcode the library paths
 	  hardcode_libdirs=
@@ -8050,7 +8076,7 @@ EOF
 	    elif test -n "$runpath_var"; then
 	      case "$perm_rpath " in
 	      *" $libdir "*) ;;
-	      *) func_apped perm_rpath " $libdir" ;;
+	      *) func_append perm_rpath " $libdir" ;;
 	      esac
 	    fi
 	  done
@@ -8058,11 +8084,7 @@ EOF
 	  if test -n "$hardcode_libdir_separator" &&
 	     test -n "$hardcode_libdirs"; then
 	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
+	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
 	  fi
 	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
 	    # We should set the runpath_var.
@@ -9152,6 +9174,8 @@ EOF
 	    esac
 	  done
 	fi
+	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+	tool_oldlib=$func_to_tool_file_result
 	eval cmds=\"$old_archive_cmds\"
 
 	func_len " $cmds"
@@ -9261,7 +9285,8 @@ EOF
 	      *.la)
 		func_basename "$deplib"
 		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		func_resolve_sysroot "$deplib"
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
 		test -z "$libdir" && \
 		  func_fatal_error "\`$deplib' is not a valid libtool archive"
 		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index d812584..828104c 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -1,8 +1,8 @@
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -11,8 +11,8 @@
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -146,6 +146,8 @@ AC_REQUIRE([AC_CANONICAL_BUILD])dnl
 AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
 AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
 
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -637,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -801,6 +803,7 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],			[_LT_LANG(C)],
   [C++],		[_LT_LANG(CXX)],
+  [Go],			[_LT_LANG(GO)],
   [Java],		[_LT_LANG(GCJ)],
   [Fortran 77],		[_LT_LANG(F77)],
   [Fortran],		[_LT_LANG(FC)],
@@ -822,6 +825,31 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -852,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
 	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -954,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
 	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+	# If there is a non-empty error log, and "single_module"
+	# appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+	  cat conftest.err >&AS_MESSAGE_LOG_FD
+	# Otherwise, if the output was created with a 0 exit code from
+	# the compiler, it worked.
+	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
 	  lt_cv_apple_cc_single_mod=yes
 	else
 	  cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -962,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	rm -rf libconftest.dylib*
 	rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -973,6 +1012,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 	[lt_cv_ld_exported_symbols_list=no])
 	LDFLAGS="$save_LDFLAGS"
     ])
+
     AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
       [lt_cv_ld_force_load=no
       cat > conftest.c << _LT_EOF
@@ -990,7 +1030,9 @@ _LT_EOF
       echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
       $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
       _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+      if test -s conftest.err && $GREP force_load conftest.err; then
+	cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
 	lt_cv_ld_force_load=yes
       else
 	cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1035,8 +1077,8 @@ _LT_EOF
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -1047,6 +1089,8 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
   if test "$lt_cv_ld_force_load" = "yes"; then
     _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
   else
     _LT_TAGVAR(whole_archive_flag_spec, $1)=''
   fi
@@ -1330,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
 	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
 	  LD="${LD-ld} -64"
@@ -1414,13 +1471,13 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
 
 case $host_os in
@@ -1600,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1639,7 +1701,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
 	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
 	      test $i != 17 # 1/2 MB should be enough
       do
@@ -2185,7 +2247,7 @@ need_version=unknown
 
 case $host_os in
 aix3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
   shlibpath_var=LIBPATH
 
@@ -2194,7 +2256,7 @@ aix3*)
   ;;
 
 aix[[4-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   hardcode_into_libs=yes
@@ -2259,7 +2321,7 @@ beos*)
   ;;
 
 bsdi[[45]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
@@ -2398,7 +2460,7 @@ m4_if([$1], [],[
   ;;
 
 dgux*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
@@ -2406,10 +2468,6 @@ dgux*)
   shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
 freebsd* | dragonfly*)
   # DragonFly does not have aout.  When/if they implement a new
   # versioning mechanism, adjust this.
@@ -2417,7 +2475,7 @@ freebsd* | dragonfly*)
     objformat=`/usr/bin/objformat`
   else
     case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
+    freebsd[[23]].*) objformat=aout ;;
     *) objformat=elf ;;
     esac
   fi
@@ -2435,7 +2493,7 @@ freebsd* | dragonfly*)
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
-  freebsd2*)
+  freebsd2.*)
     shlibpath_overrides_runpath=yes
     ;;
   freebsd3.[[01]]* | freebsdelf3.[[01]]*)
@@ -2455,17 +2513,18 @@ freebsd* | dragonfly*)
   ;;
 
 gnu*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
   hardcode_into_libs=yes
   ;;
 
 haiku*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   dynamic_linker="$host_os runtime_loader"
@@ -2526,7 +2585,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 interix[[3-9]]*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
@@ -2542,7 +2601,7 @@ irix5* | irix6* | nonstopux*)
     nonstopux*) version_type=nonstopux ;;
     *)
 	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+		version_type=linux # correct to gnu/linux during the next big refactor
 	else
 		version_type=irix
 	fi ;;
@@ -2579,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2625,6 +2684,18 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -2644,7 +2715,7 @@ netbsd*)
   ;;
 
 newsos6)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
@@ -2713,7 +2784,7 @@ rdos*)
   ;;
 
 solaris*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2738,7 +2809,7 @@ sunos4*)
   ;;
 
 sysv4 | sysv4.3*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -2762,7 +2833,7 @@ sysv4 | sysv4.3*)
 
 sysv4*MP*)
   if test -d /usr/nec ;then
-    version_type=linux
+    version_type=linux # correct to gnu/linux during the next big refactor
     library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
     soname_spec='$libname${shared_ext}.$major'
     shlibpath_var=LD_LIBRARY_PATH
@@ -2793,7 +2864,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 
 tpf*)
   # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
@@ -2803,7 +2874,7 @@ tpf*)
   ;;
 
 uts4*)
-  version_type=linux
+  version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
   soname_spec='${libname}${release}${shared_ext}$major'
   shlibpath_var=LD_LIBRARY_PATH
@@ -3225,12 +3296,12 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be Linux ELF.
+# This must be glibc/ELF.
 linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -3645,6 +3716,7 @@ for ac_symprfx in "" "_"; do
     # which start with @ or ?.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
 "     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
 "     \$ 0!~/External *\|/{next};"\
 "     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
@@ -4041,7 +4113,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      netbsd*)
+      netbsd* | netbsdelf*-gnu)
 	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4229,7 +4301,9 @@ m4_if([$1], [CXX], [
     case $cc_basename in
     nvcc*) # Cuda Compiler Driver 2.2
       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
       ;;
     esac
   else
@@ -4321,18 +4395,33 @@ m4_if([$1], [CXX], [
 	;;
       *)
 	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ F* | *Sun*Fortran*)
+	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
 	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
 	  ;;
+	*Sun\ F* | *Sun*Fortran*)
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	  ;;
 	*Sun\ C*)
 	  # Sun C 5.9
 	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	  ;;
+        *Intel*\ [[CF]]*Compiler*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	  ;;
+	*Portland\ Group*)
+	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  ;;
 	esac
 	;;
       esac
@@ -4492,13 +4581,18 @@ m4_if([$1], [CXX], [
     ;;
   cygwin* | mingw* | cegcc*)
     case $cc_basename in
-    cl*) ;;
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
     *)
       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
       _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
       ;;
     esac
     ;;
+  linux* | k*bsd*-gnu | gnu*)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
     ;;
@@ -4517,7 +4611,6 @@ m4_if([$1], [CXX], [
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_direct_absolute, $1)=no
   _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
   _LT_TAGVAR(hardcode_libdir_separator, $1)=
   _LT_TAGVAR(hardcode_minus_L, $1)=no
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -4562,6 +4655,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu | gnu*)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4768,8 +4864,7 @@ _LT_EOF
 	xlf* | bgf* | bgxlf* | mpixlf*)
 	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
 	  if test "x$supports_anon_versioning" = xyes; then
 	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
@@ -4784,7 +4879,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -4961,6 +5056,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -5064,6 +5160,7 @@ _LT_EOF
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
 	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
 	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
 	# Don't use ranlib
 	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
@@ -5110,10 +5207,6 @@ _LT_EOF
       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
       ;;
 
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
     # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
     # support.  Future versions do this automatically, but an explicit c++rt0.o
     # does not break anything, and helps significantly (at the cost of a little
@@ -5126,7 +5219,7 @@ _LT_EOF
       ;;
 
     # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
+    freebsd2.*)
       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
       _LT_TAGVAR(hardcode_direct, $1)=yes
       _LT_TAGVAR(hardcode_minus_L, $1)=yes
@@ -5165,7 +5258,6 @@ _LT_EOF
       fi
       if test "$with_gnu_ld" = no; then
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
 	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
 	_LT_TAGVAR(hardcode_direct, $1)=yes
 	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
@@ -5269,7 +5361,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -5607,9 +5699,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1],
 _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
     [Flag to hardcode $libdir into a binary during linking.
     This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
 _LT_TAGDECL([], [hardcode_libdir_separator], [1],
     [Whether we need a single "-rpath" flag with a separated argument])
 _LT_TAGDECL([], [hardcode_direct], [0],
@@ -5767,7 +5856,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
@@ -6137,7 +6225,7 @@ if test "$_lt_caught_CXX_error" != yes; then
         esac
         ;;
 
-      freebsd[[12]]*)
+      freebsd2.*)
         # C++ shared libraries reported to be fairly broken before
 	# switch to ELF
         _LT_TAGVAR(ld_shlibs, $1)=no
@@ -6898,12 +6986,18 @@ public class foo {
   }
 };
 _LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
 ])
 
 _lt_libdeps_save_CFLAGS=$CFLAGS
 case "$CC $CFLAGS " in #(
 *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
 *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
 esac
 
 dnl Parse the compiler output and extract the necessary
@@ -7100,7 +7194,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -7233,7 +7326,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
 _LT_TAGVAR(hardcode_direct, $1)=no
 _LT_TAGVAR(hardcode_direct_absolute, $1)=no
 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
 _LT_TAGVAR(hardcode_libdir_separator, $1)=
 _LT_TAGVAR(hardcode_minus_L, $1)=no
 _LT_TAGVAR(hardcode_automatic, $1)=no
@@ -7420,6 +7512,77 @@ CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
 # _LT_LANG_RC_CONFIG([TAG])
 # -------------------------
 # Ensure that the configuration variables for the Windows resource compiler
@@ -7489,6 +7652,13 @@ dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
 
 
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
 # LT_PROG_RC
 # ----------
 AC_DEFUN([LT_PROG_RC],
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
index 17cfd51..5d9acd8 100644
--- a/m4/ltoptions.m4
+++ b/m4/ltoptions.m4
@@ -326,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
 # MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
 m4_define([_LT_WITH_PIC],
 [AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
 	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+	IFS="$lt_save_ifs"
+	if test "X$lt_pkg" = "X$lt_p"; then
+	  pic_mode=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
     [pic_mode=default])
 
 test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
index 9c7b5d4..07a8602 100644
--- a/m4/ltversion.m4
+++ b/m4/ltversion.m4
@@ -9,15 +9,15 @@
 
 # @configure_input@
 
-# serial 3293 ltversion.m4
+# serial 3337 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.4])
-m4_define([LT_PACKAGE_REVISION], [1.3293])
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4'
-macro_revision='1.3293'
+[macro_version='2.4.2'
+macro_revision='1.3337'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])
diff --git a/man/Makefile.in b/man/Makefile.in
index a1e8329..b743fc7 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -455,10 +455,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/man/man1/Makefile.in b/man/man1/Makefile.in
index 7723b3c..a0574aa 100644
--- a/man/man1/Makefile.in
+++ b/man/man1/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -69,6 +69,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 man1dir = $(mandir)/man1
 am__installdirs = "$(DESTDIR)$(man1dir)"
 NROFF = nroff
@@ -267,9 +273,7 @@ uninstall-man1:
 	  sed -n '/\.1[a-z]*$$/p'; \
 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-	test -z "$$files" || { \
-	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
-	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -337,10 +341,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/man/man1/cs2cs.1 b/man/man1/cs2cs.1
index 899c17a..016cc00 100644
--- a/man/man1/cs2cs.1
+++ b/man/man1/cs2cs.1
@@ -157,14 +157,14 @@ when both input and output are ASCII all trailing portions
 of the input line are appended to the output line.
 .PP
 Input geographic data
-(longitude and latitude) must be in DMS format and input
+(longitude and latitude) must be in DMS or decimal degrees format and input
 cartesian data must be in units consistent with the ellipsoid
 major axis or sphere radius units.
-Output geographic coordinates will be in DMS
-(if the
-.B \-w
-switch is not employed) and precise to 0.001"
-with trailing, zero-valued minute-second fields deleted.
+Output geographic coordinates will normally be in DMS format (use 
+.B \-f %.12f 
+for decimal degrees with 12 decimal places), while
+projected (cartesian) coordinates will be in linear (meter, feet) units.
+
 .SH EXAMPLE
 The following script
 .RS 5
diff --git a/man/man3/Makefile.in b/man/man3/Makefile.in
index 96e63ed..da66c72 100644
--- a/man/man3/Makefile.in
+++ b/man/man3/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -69,6 +69,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 man3dir = $(mandir)/man3
 am__installdirs = "$(DESTDIR)$(man3dir)"
 NROFF = nroff
@@ -267,9 +273,7 @@ uninstall-man3:
 	  sed -n '/\.3[a-z]*$$/p'; \
 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-	test -z "$$files" || { \
-	  echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
-	  cd "$(DESTDIR)$(man3dir)" && rm -f $$files; }
+	dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -337,10 +341,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/nad/CMakeLists.txt b/nad/CMakeLists.txt
new file mode 100644
index 0000000..e95b0cd
--- /dev/null
+++ b/nad/CMakeLists.txt
@@ -0,0 +1,55 @@
+#
+# files containing dictionnary of useful projection
+#
+
+set(PROJ_DICTIONARY  epsg
+                     esri
+                     world
+                     esri.extra
+                     other.extra
+                     IGNF
+                     nad27
+                     GL27
+                     nad83
+                     nad.lst )
+
+#
+# gridshift file
+#
+
+file(GLOB GSB_FILES  *.gsb)
+set(GRIDSHIFT_FILES ${GSB_FILES})
+set(GRIDSHIFT_FILES ${GRIDSHIFT_FILES}
+                     )
+option(CONVERT_DATA "convert some ascii file to binary file for use in proj4" OFF)
+if(CONVERT_DATA AND nad2bin)
+   message(ERROR " you need to compile nad2bin exe in order to convert data file" )
+else(CONVERT_DATA AND nad2bin)
+   set(LLA_GRID_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+   proj_convert_grid_lla2gsb(LLA_GRID_DIR)
+   file(GLOB LLA_FILES  *.lla)
+   proj_append_lla_output_file(LLA_FILES GRIDSHIFT_FILES)
+endif(CONVERT_DATA AND nad2bin)
+
+
+#
+#install
+#
+set(ALL_DATA_FILE ${PROJ_DICTIONARY}
+                  ${GRIDSHIFT_FILES}
+                  ${GEOID_FILES})
+install(FILES ${ALL_DATA_FILE}
+       DESTINATION ${DATADIR})
+
+#
+# test
+#
+set(CS2CS_BIN "cs2cs")
+set(PROJ_BIN "proj")
+proj_add_test_script_sh("test27" PROJ_BIN )
+proj_add_test_script_sh("test83" PROJ_BIN )
+proj_add_test_script_sh("testvarious" CS2CS_BIN )
+proj_add_test_script_sh("testdatumfile" CS2CS_BIN "connu")
+proj_add_test_script_sh("testIGNF" CS2CS_BIN "ntf_r93.gsb")
+proj_add_test_script_sh("testntv2" CS2CS_BIN "ntv2_0.gsb")
+
diff --git a/nad/Makefile.am b/nad/Makefile.am
index 572bda0..f8ffae8 100644
--- a/nad/Makefile.am
+++ b/nad/Makefile.am
@@ -11,30 +11,29 @@ TESTVARIOUS = ./testvarious
 TESTDATUMFILE = ./testdatumfile
 TESTIGN = ./testIGNF
 
-pkgdata_DATA = GL27 nad.lst nad27 nad83 proj_def.dat world epsg esri \
+pkgdata_DATA = GL27 nad.lst nad27 nad83 world epsg esri \
 		esri.extra other.extra \
-		CH IGNF 
+		CH IGNF
 
 EXTRA_DIST = GL27 nad.lst nad27 nad83 pj_out27.dist pj_out83.dist td_out.dist \
-		proj_def.dat test27 test83 world epsg esri tv_out.dist \
+		test27 test83 world epsg esri tv_out.dist \
 		testvarious testdatumfile testntv2 ntv2_out.dist \
 		esri.extra other.extra \
 		CH IGNF testIGNF proj_outIGNF.dist \
-		makefile.vc
+		makefile.vc CMakeLists.txt
 
 process-nad2bin:
-	@if [ -f conus.lla -a ! -f conus ] ; then \
+	@if [ -f null.lla -a ! -f null ] || [ -f conus.lla -a ! -f conus ] ; then \
 	  for x in *.lla ; do \
 	    DEST=`basename $$x .lla`; \
 	    echo "../src/nad2bin$(EXEEXT) $$DEST < $$x"; \
 	    ../src/nad2bin$(EXEEXT) $$DEST < $$x ; \
 	  done; \
-	fi 
+	fi
 
 install-data-local: process-nad2bin
 	$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
-	@if [ -f conus.lla ] ; then \
-	  for x in *.lla ; do \
+	@for x in *.lla ; do \
 	    DEST=$(DESTDIR)$(pkgdatadir)/`basename $$x .lla`; \
 	    echo "../src/nad2bin$(EXEEXT) $$DEST < $$x"; \
 	    ../src/nad2bin$(EXEEXT) $$DEST < $$x ; \
@@ -42,10 +41,10 @@ install-data-local: process-nad2bin
 		echo "nad2bin$(EXEEXT) failed to install $$DEST"; \
 		exit 1; \
 	    fi; \
-	  done; \
-	else \
+	done
+	@if [ ! -f conus.lla ] ; then \
 	  echo "nad2nad NADCON source files not present"; \
-	fi 
+	fi
 	@for gridfile in *.gsb ntv1_can.dat dummy ; do \
 	  if test "$$gridfile" != "dummy" -a -f "$$gridfile" ; then \
 	    echo $(INSTALL_DATA) $$gridfile $(DESTDIR)$(pkgdatadir)/$$gridfile; \
@@ -56,7 +55,7 @@ install-data-local: process-nad2bin
 check-local: process-nad2bin
 	$(TEST27) $(PROJEXE)
 	$(TEST83) $(PROJEXE)
-	$(TESTVARIOUS) $(CS2CSEXE)
+	PROJ_LIB=. $(TESTVARIOUS) $(CS2CSEXE)
 	@if [ -f conus ] ; then \
 	  export PROJ_LIB=. ; \
 	  $(TESTDATUMFILE) $(CS2CSEXE) ; \
diff --git a/nad/Makefile.in b/nad/Makefile.in
index 6ca6acc..010f37e 100644
--- a/nad/Makefile.in
+++ b/nad/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -70,6 +70,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(pkgdatadir)"
 DATA = $(pkgdata_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -203,16 +209,16 @@ TESTNTV2 = ./testntv2
 TESTVARIOUS = ./testvarious
 TESTDATUMFILE = ./testdatumfile
 TESTIGN = ./testIGNF
-pkgdata_DATA = GL27 nad.lst nad27 nad83 proj_def.dat world epsg esri \
+pkgdata_DATA = GL27 nad.lst nad27 nad83 world epsg esri \
 		esri.extra other.extra \
-		CH IGNF 
+		CH IGNF
 
 EXTRA_DIST = GL27 nad.lst nad27 nad83 pj_out27.dist pj_out83.dist td_out.dist \
-		proj_def.dat test27 test83 world epsg esri tv_out.dist \
+		test27 test83 world epsg esri tv_out.dist \
 		testvarious testdatumfile testntv2 ntv2_out.dist \
 		esri.extra other.extra \
 		CH IGNF testIGNF proj_outIGNF.dist \
-		makefile.vc
+		makefile.vc CMakeLists.txt
 
 all: all-am
 
@@ -270,9 +276,7 @@ uninstall-pkgdataDATA:
 	@$(NORMAL_UNINSTALL)
 	@list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
+	dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir)
 tags: TAGS
 TAGS:
 
@@ -328,10 +332,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
@@ -426,18 +435,17 @@ uninstall-am: uninstall-pkgdataDATA
 
 
 process-nad2bin:
-	@if [ -f conus.lla -a ! -f conus ] ; then \
+	@if [ -f null.lla -a ! -f null ] || [ -f conus.lla -a ! -f conus ] ; then \
 	  for x in *.lla ; do \
 	    DEST=`basename $$x .lla`; \
 	    echo "../src/nad2bin$(EXEEXT) $$DEST < $$x"; \
 	    ../src/nad2bin$(EXEEXT) $$DEST < $$x ; \
 	  done; \
-	fi 
+	fi
 
 install-data-local: process-nad2bin
 	$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
-	@if [ -f conus.lla ] ; then \
-	  for x in *.lla ; do \
+	@for x in *.lla ; do \
 	    DEST=$(DESTDIR)$(pkgdatadir)/`basename $$x .lla`; \
 	    echo "../src/nad2bin$(EXEEXT) $$DEST < $$x"; \
 	    ../src/nad2bin$(EXEEXT) $$DEST < $$x ; \
@@ -445,10 +453,10 @@ install-data-local: process-nad2bin
 		echo "nad2bin$(EXEEXT) failed to install $$DEST"; \
 		exit 1; \
 	    fi; \
-	  done; \
-	else \
+	done
+	@if [ ! -f conus.lla ] ; then \
 	  echo "nad2nad NADCON source files not present"; \
-	fi 
+	fi
 	@for gridfile in *.gsb ntv1_can.dat dummy ; do \
 	  if test "$$gridfile" != "dummy" -a -f "$$gridfile" ; then \
 	    echo $(INSTALL_DATA) $$gridfile $(DESTDIR)$(pkgdatadir)/$$gridfile; \
@@ -459,7 +467,7 @@ install-data-local: process-nad2bin
 check-local: process-nad2bin
 	$(TEST27) $(PROJEXE)
 	$(TEST83) $(PROJEXE)
-	$(TESTVARIOUS) $(CS2CSEXE)
+	PROJ_LIB=. $(TESTVARIOUS) $(CS2CSEXE)
 	@if [ -f conus ] ; then \
 	  export PROJ_LIB=. ; \
 	  $(TESTDATUMFILE) $(CS2CSEXE) ; \
diff --git a/nad/epsg b/nad/epsg
index f11c522..702e5f1 100644
--- a/nad/epsg
+++ b/nad/epsg
@@ -219,7 +219,7 @@
 # Pulkovo 1942(83)
 <4178> +proj=longlat +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +no_defs  <>
 # Pulkovo 1942(58)
-<4179> +proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defs  <>
+<4179> +proj=longlat +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +no_defs  <>
 # EST97
 <4180> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # Luxembourg 1930
@@ -303,9 +303,9 @@
 # Carthage
 <4223> +proj=longlat +datum=carthage +no_defs  <>
 # Chua
-<4224> +proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs  <>
+<4224> +proj=longlat +ellps=intl +towgs84=-143.87,243.37,-33.52,0,0,0,0 +no_defs  <>
 # Corrego Alegre 1970-72
-<4225> +proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs  <>
+<4225> +proj=longlat +ellps=intl +towgs84=-205.57,168.77,-4.12,0,0,0,0 +no_defs  <>
 # Cote d'Ivoire
 <4226> +proj=longlat +a=6378249.2 +b=6356515 +no_defs  <>
 # Deir ez Zor
@@ -502,7 +502,7 @@
 <4470> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # Cadastre 1997
 <4475> +proj=longlat +ellps=intl +towgs84=-381.788,-57.501,-256.673,0,0,0,0 +no_defs  <>
-# Mexican Datum of 1993
+# Mexico ITRF92
 <4483> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # China Geodetic Coordinate System 2000
 <4490> +proj=longlat +ellps=GRS80 +no_defs  <>
@@ -547,7 +547,7 @@
 # NAD83(CSRS)
 <4617> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # SAD69
-<4618> +proj=longlat +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +no_defs  <>
+<4618> +proj=longlat +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +no_defs  <>
 # SWEREF99
 <4619> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # Point 58
@@ -885,7 +885,7 @@
 # SLD99
 <5233> +proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.039338 +no_defs  <>
 # GDBD2009
-<5246> +proj=longlat +ellps=GRS80 +no_defs  <>
+<5246> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # TUREF
 <5252> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # DRUKREF 03
@@ -909,7 +909,7 @@
 # SIRGAS_ES2007.8
 <5393> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
 # Ocotepeque 1935
-<5451> +proj=longlat +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +no_defs  <>
+<5451> +proj=longlat +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +no_defs  <>
 # Sibun Gorge 1922
 <5464> +proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs  <>
 # Panama-Colon 1911
@@ -932,6 +932,22 @@
 <5886> +proj=longlat +ellps=GRS80 +no_defs  <>
 # CIGD11
 <6135> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
+# Nepal 1981
+<6207> +proj=longlat +a=6377276.345 +b=6356075.41314024 +towgs84=293.17,726.18,245.36,0,0,0,0 +no_defs  <>
+# NAD83(2011)
+<6318> +proj=longlat +ellps=GRS80 +no_defs  <>
+# NAD83(PA11)
+<6322> +proj=longlat +ellps=GRS80 +no_defs  <>
+# NAD83(MA11)
+<6325> +proj=longlat +ellps=GRS80 +no_defs  <>
+# Mexico ITRF2008
+<6365> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
+# JGD2011
+<6668> +proj=longlat +ellps=GRS80 +no_defs  <>
+# RDN2008
+<6706> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs  <>
+# NAD83(CORS96)
+<6783> +proj=longlat +ellps=GRS80 +no_defs  <>
 # Anguilla 1957 / British West Indies Grid
 <2000> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.9995000000000001 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs  <>
 # Antigua 1943 / British West Indies Grid
@@ -1275,15 +1291,15 @@
 # MGI / Slovenia Grid (deprecated)
 <2170> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=0 +datum=hermannskogel +units=m +no_defs  <>
 # Pulkovo 1942(58) / Poland zone I (deprecated)
-<2171> +proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<2171> +proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Poland zone II
-<2172> +proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<2172> +proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.9998 +x_0=4603000 +y_0=5806000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Poland zone III
-<2173> +proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<2173> +proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.9998 +x_0=3501000 +y_0=5999000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Poland zone IV
-<2174> +proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<2174> +proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.9998 +x_0=3703000 +y_0=5627000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Poland zone V
-<2175> +proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<2175> +proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # ETRS89 / Poland CS2000 zone 5
 <2176> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # ETRS89 / Poland CS2000 zone 6
@@ -2913,13 +2929,13 @@
 <2989> +proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # Reunion 1947 / TM Reunion (deprecated)
 <2990> +proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=50000 +y_0=160000 +ellps=intl +towgs84=94,-948,-1262,0,0,0,0 +units=m +no_defs  <>
-# NAD83 / Oregon Lambert
+# NAD83 / Oregon LCC (m)
 <2991> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +datum=NAD83 +units=m +no_defs  <>
-# NAD83 / Oregon Lambert (ft)
+# NAD83 / Oregon GIC Lambert (ft)
 <2992> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +datum=NAD83 +units=ft +no_defs  <>
-# NAD83(HARN) / Oregon Lambert
+# NAD83(HARN) / Oregon LCC (m)
 <2993> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(HARN) / Oregon Lambert (ft)
+# NAD83(HARN) / Oregon GIC Lambert (ft)
 <2994> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs  <>
 # IGN53 Mare / UTM zone 58S
 <2995> +proj=utm +zone=58 +south +ellps=intl +towgs84=287.58,177.78,-135.41,0,0,0,0 +units=m +no_defs  <>
@@ -3174,7 +3190,7 @@
 # Douala 1948 / AEF west
 <3119> +proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Poland zone I
-<3120> +proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3120> +proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.9998 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # PRS92 / Philippines zone 1
 <3121> +proj=tmerc +lat_0=0 +lon_0=117 +k=0.99995 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs  <>
 # PRS92 / Philippines zone 2
@@ -3595,21 +3611,21 @@
 # IGC 1962 / Congo TM zone 30
 <3327> +proj=tmerc +lat_0=0 +lon_0=30 +k=0.9999 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs  <>
 # Pulkovo 1942(58) / GUGiK-80
-<3328> +proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3328> +proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5
-<3329> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3329> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6
-<3330> +proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3330> +proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7
-<3331> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3331> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8
-<3332> +proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3332> +proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Gauss-Kruger zone 3
-<3333> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3333> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Gauss-Kruger zone 4
-<3334> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3334> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Gauss-Kruger zone 5
-<3335> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3335> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # IGN 1962 Kerguelen / UTM zone 42S
 <3336> +proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs  <>
 # Le Pouce 1934 / Mauritius Grid
@@ -3772,37 +3788,37 @@
 <3415> +proj=lcc +lat_1=18 +lat_2=24 +lat_0=21 +lon_0=114 +x_0=500000 +y_0=500000 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs  <>
 # ETRS89 / Austria Lambert
 <3416> +proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83 / Iowa North (ft US)
+# NAD83 / Iowa North (ftUS)
 <3417> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / Iowa South (ft US)
+# NAD83 / Iowa South (ftUS)
 <3418> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / Kansas North (ft US)
+# NAD83 / Kansas North (ftUS)
 <3419> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / Kansas South (ft US)
+# NAD83 / Kansas South (ftUS)
 <3420> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / Nevada East (ft US)
+# NAD83 / Nevada East (ftUS)
 <3421> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / Nevada Central (ft US)
+# NAD83 / Nevada Central (ftUS)
 <3422> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / Nevada West (ft US)
+# NAD83 / Nevada West (ftUS)
 <3423> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83 / New Jersey (ft US)
+# NAD83 / New Jersey (ftUS)
 <3424> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +datum=NAD83 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Iowa North (ft US)
+# NAD83(HARN) / Iowa North (ftUS)
 <3425> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Iowa South (ft US)
+# NAD83(HARN) / Iowa South (ftUS)
 <3426> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Kansas North (ft US)
+# NAD83(HARN) / Kansas North (ftUS)
 <3427> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Kansas South (ft US)
+# NAD83(HARN) / Kansas South (ftUS)
 <3428> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Nevada East (ft US)
+# NAD83(HARN) / Nevada East (ftUS)
 <3429> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Nevada Central (ft US)
+# NAD83(HARN) / Nevada Central (ftUS)
 <3430> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / Nevada West (ft US)
+# NAD83(HARN) / Nevada West (ftUS)
 <3431> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(HARN) / New Jersey (ft US)
+# NAD83(HARN) / New Jersey (ftUS)
 <3432> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83 / Arkansas North (ftUS)
 <3433> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +datum=NAD83 +units=us-ft +no_defs  <>
@@ -4012,19 +4028,19 @@
 <3535> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Iowa North
 <3536> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Iowa North (ft US)
+# NAD83(NSRS2007) / Iowa North (ftUS)
 <3537> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Iowa South
 <3538> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Iowa South (ft US)
+# NAD83(NSRS2007) / Iowa South (ftUS)
 <3539> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Kansas North
 <3540> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Kansas North (ft US)
+# NAD83(NSRS2007) / Kansas North (ftUS)
 <3541> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Kansas South
 <3542> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Kansas South (ft US)
+# NAD83(NSRS2007) / Kansas South (ftUS)
 <3543> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Kentucky North
 <3544> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
@@ -4154,15 +4170,15 @@
 <3606> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # NAD83(NSRS2007) / Nevada Central
 <3607> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Nevada Central (ft US)
+# NAD83(NSRS2007) / Nevada Central (ftUS)
 <3608> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Nevada East
 <3609> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Nevada East (ft US)
+# NAD83(NSRS2007) / Nevada East (ftUS)
 <3610> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / Nevada West
 <3611> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Nevada West (ft US)
+# NAD83(NSRS2007) / Nevada West (ftUS)
 <3612> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / New Hampshire
 <3613> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
@@ -4170,7 +4186,7 @@
 <3614> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / New Jersey
 <3615> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / New Jersey (ft US)
+# NAD83(NSRS2007) / New Jersey (ftUS)
 <3616> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
 # NAD83(NSRS2007) / New Mexico Central
 <3617> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
@@ -4224,9 +4240,9 @@
 <3641> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # NAD83(NSRS2007) / Oklahoma South (ftUS)
 <3642> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
-# NAD83(NSRS2007) / Oregon Lambert
+# NAD83(NSRS2007) / Oregon LCC (m)
 <3643> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# NAD83(NSRS2007) / Oregon Lambert (ft)
+# NAD83(NSRS2007) / Oregon GIC Lambert (ft)
 <3644> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs  <>
 # NAD83(NSRS2007) / Oregon North
 <3645> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
@@ -4563,7 +4579,7 @@
 # WGS 84 / PDC Mercator
 <3832> +proj=merc +lon_0=150 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Gauss-Kruger zone 2
-<3833> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3833> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(83) / Gauss-Kruger zone 2
 <3834> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(83) / Gauss-Kruger zone 3
@@ -4571,13 +4587,13 @@
 # Pulkovo 1942(83) / Gauss-Kruger zone 4
 <3836> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3
-<3837> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3837> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4
-<3838> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3838> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 9
-<3839> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3839> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 10
-<3840> +proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3840> +proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 6
 <3841> +proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 7 (deprecated)
@@ -4585,7 +4601,7 @@
 # Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 8 (deprecated)
 <3843> +proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Stereo70
-<3844> +proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<3844> +proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # SWEREF99 / RT90 7.5 gon V emulation
 <3845> +proj=tmerc +lat_0=0 +lon_0=11.30625 +k=1.000006 +x_0=1500025.141 +y_0=-667.282 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # SWEREF99 / RT90 5 gon V emulation
@@ -4746,7 +4762,7 @@
 # RGRDC 2005 / UTM zone 35S
 <4063> +proj=utm +zone=35 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # Chua / UTM zone 23S
-<4071> +proj=utm +zone=23 +south +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +units=m +no_defs  <>
+<4071> +proj=utm +zone=23 +south +ellps=intl +towgs84=-143.87,243.37,-33.52,0,0,0,0 +units=m +no_defs  <>
 # REGCAN95 / UTM zone 27N
 <4082> +proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # REGCAN95 / UTM zone 28N
@@ -4855,17 +4871,17 @@
 <4471> +proj=utm +zone=38 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # Cadastre 1997 / UTM zone 38S (deprecated)
 <4474> +proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +units=m +no_defs  <>
-# Mexican Datum of 1993 / UTM zone 11N
+# Mexico ITRF92 / UTM zone 11N
 <4484> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# Mexican Datum of 1993 / UTM zone 12N
+# Mexico ITRF92 / UTM zone 12N
 <4485> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# Mexican Datum of 1993 / UTM zone 13N
+# Mexico ITRF92 / UTM zone 13N
 <4486> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# Mexican Datum of 1993 / UTM zone 14N
+# Mexico ITRF92 / UTM zone 14N
 <4487> +proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# Mexican Datum of 1993 / UTM zone 15N
+# Mexico ITRF92 / UTM zone 15N
 <4488> +proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
-# Mexican Datum of 1993 / UTM zone 16N
+# Mexico ITRF92 / UTM zone 16N
 <4489> +proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # CGCS2000 / Gauss-Kruger zone 13
 <4491> +proj=tmerc +lat_0=0 +lon_0=75 +k=1 +x_0=13500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
@@ -5321,7 +5337,7 @@
 # ETRS89 / LCC Germany (E-N)
 <5243> +proj=lcc +lat_1=48.66666666666666 +lat_2=53.66666666666666 +lat_0=51 +lon_0=10.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # GDBD2009 / Brunei BRSO
-<5247> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +ellps=GRS80 +units=m +no_defs  <>
+<5247> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +no_uoff +gamma=53.13010236111111 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # TUREF / TM27
 <5253> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # TUREF / TM30
@@ -5447,21 +5463,21 @@
 # SIRGAS 2000 / UTM zone 26S
 <5396> +proj=utm +zone=26 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / Costa Rica Norte
-<5456> +proj=lcc +lat_1=10.46666666666667 +lat_0=10.46666666666667 +lon_0=-84.33333333333333 +k_0=0.99995696 +x_0=500000 +y_0=271820.522 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5456> +proj=lcc +lat_1=10.46666666666667 +lat_0=10.46666666666667 +lon_0=-84.33333333333333 +k_0=0.99995696 +x_0=500000 +y_0=271820.522 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / Costa Rica Sur
-<5457> +proj=lcc +lat_1=9 +lat_0=9 +lon_0=-83.66666666666667 +k_0=0.99995696 +x_0=500000 +y_0=327987.436 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5457> +proj=lcc +lat_1=9 +lat_0=9 +lon_0=-83.66666666666667 +k_0=0.99995696 +x_0=500000 +y_0=327987.436 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / Guatemala Norte (deprecated)
 <5458> +proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +datum=NAD27 +units=m +no_defs  <>
 # Ocotepeque 1935 / Guatemala Sur
-<5459> +proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5459> +proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / El Salvador Lambert
-<5460> +proj=lcc +lat_1=13.78333333333333 +lat_0=13.78333333333333 +lon_0=-89 +k_0=0.99996704 +x_0=500000 +y_0=295809.184 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5460> +proj=lcc +lat_1=13.78333333333333 +lat_0=13.78333333333333 +lon_0=-89 +k_0=0.99996704 +x_0=500000 +y_0=295809.184 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / Nicaragua Norte
-<5461> +proj=lcc +lat_1=13.86666666666667 +lat_0=13.86666666666667 +lon_0=-85.5 +k_0=0.99990314 +x_0=500000 +y_0=359891.816 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5461> +proj=lcc +lat_1=13.86666666666667 +lat_0=13.86666666666667 +lon_0=-85.5 +k_0=0.99990314 +x_0=500000 +y_0=359891.816 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / Nicaragua Sur
-<5462> +proj=lcc +lat_1=11.73333333333333 +lat_0=11.73333333333333 +lon_0=-85.5 +k_0=0.9999222800000001 +x_0=500000 +y_0=288876.327 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5462> +proj=lcc +lat_1=11.73333333333333 +lat_0=11.73333333333333 +lon_0=-85.5 +k_0=0.9999222800000001 +x_0=500000 +y_0=288876.327 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 17N
-<5463> +proj=utm +zone=17 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<5463> +proj=utm +zone=17 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # Sibun Gorge 1922 / Colony Grid (deprecated)
 <5466> +proj=tmerc +lat_0=17.06124194444444 +lon_0=-88.6318575 +k=1 +x_0=66220.02833082761 +y_0=135779.5099885299 +a=6378293.645208759 +b=6356617.987679838 +units=m +no_defs  <>
 # Panama-Colon 1911 / Panama Lambert
@@ -5501,7 +5517,7 @@
 # SAD69(96) / UTM zone 21S
 <5531> +proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +units=m +no_defs  <>
 # SAD69(96) / UTM zone 22S (deprecated)
-<5532> +proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<5532> +proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69(96) / UTM zone 23S
 <5533> +proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +units=m +no_defs  <>
 # SAD69(96) / UTM zone 24S
@@ -5523,7 +5539,7 @@
 # PNG94 / PNGMG94 zone 56
 <5552> +proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # Ocotepeque 1935 / Guatemala Norte
-<5559> +proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +towgs84=213.11,9.37,-74.95,0,0,0,0 +units=m +no_defs  <>
+<5559> +proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +towgs84=205,96,-98,0,0,0,0 +units=m +no_defs  <>
 # UCS-2000 / Gauss-Kruger zone 4
 <5562> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
 # UCS-2000 / Gauss-Kruger zone 5
@@ -5540,33 +5556,33 @@
 <5568> +proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
 # UCS-2000 / Gauss-Kruger CM 39E
 <5569> +proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 7
+# UCS-2000 / 3-degree Gauss-Kruger zone 7 (deprecated)
 <5570> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 8
+# UCS-2000 / 3-degree Gauss-Kruger zone 8 (deprecated)
 <5571> +proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 9
+# UCS-2000 / 3-degree Gauss-Kruger zone 9 (deprecated)
 <5572> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 10
+# UCS-2000 / 3-degree Gauss-Kruger zone 10 (deprecated)
 <5573> +proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=10500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 11
+# UCS-2000 / 3-degree Gauss-Kruger zone 11 (deprecated)
 <5574> +proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 12
+# UCS-2000 / 3-degree Gauss-Kruger zone 12 (deprecated)
 <5575> +proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=12500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger zone 13
+# UCS-2000 / 3-degree Gauss-Kruger zone 13 (deprecated)
 <5576> +proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=13500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 21E
+# UCS-2000 / 3-degree Gauss-Kruger CM 21E (deprecated)
 <5577> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 24E
+# UCS-2000 / 3-degree Gauss-Kruger CM 24E (deprecated)
 <5578> +proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 27E
+# UCS-2000 / 3-degree Gauss-Kruger CM 27E (deprecated)
 <5579> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 30E
+# UCS-2000 / 3-degree Gauss-Kruger CM 30E (deprecated)
 <5580> +proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 33E
+# UCS-2000 / 3-degree Gauss-Kruger CM 33E (deprecated)
 <5581> +proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 36E
+# UCS-2000 / 3-degree Gauss-Kruger CM 36E (deprecated)
 <5582> +proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
-# UCS-2000 / 3-degree Gauss-Kruger CM 39E
+# UCS-2000 / 3-degree Gauss-Kruger CM 39E (deprecated)
 <5583> +proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
 # NAD27 / New Brunswick Stereographic (NAD27)
 <5588> +proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=304800 +y_0=304800 +datum=NAD27 +units=ft +no_defs  <>
@@ -5585,7 +5601,7 @@
 # Moznet / UTM zone 38S
 <5629> +proj=utm +zone=38 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Gauss-Kruger zone 2 (E-N)
-<5631> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<5631> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # PTRA08 / LCC Europe
 <5632> +proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # PTRA08 / LAEA Europe
@@ -5627,7 +5643,7 @@
 # Monte Mario / TM Emilia-Romagna
 <5659> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=500053 +y_0=-3999820 +ellps=intl +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 +units=m +no_defs  <>
 # Pulkovo 1942(58) / Gauss-Kruger zone 3 (E-N)
-<5663> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<5663> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(83) / Gauss-Kruger zone 2 (E-N)
 <5664> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=2500000 +y_0=0 +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(83) / Gauss-Kruger zone 3 (E-N)
@@ -5641,11 +5657,11 @@
 # RD/83 / 3-degree Gauss-Kruger zone 5 (E-N)
 <5669> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 3 (E-N)
-<5670> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<5670> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 4 (E-N)
-<5671> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<5671> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 (E-N)
-<5672> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs  <>
+<5672> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 +units=m +no_defs  <>
 # Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 3 (E-N)
 <5673> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=26,-121,-78,0,0,0,0 +units=m +no_defs  <>
 # Pulkovo 1942(83) / 3-degree Gauss-Kruger zone 4 (E-N)
@@ -5905,8 +5921,801 @@
 <6128> +proj=utm +zone=17 +ellps=clrk66 +towgs84=-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925 +units=ft +no_defs  <>
 # Sister Islands National Grid 1961
 <6129> +proj=utm +zone=17 +ellps=clrk66 +towgs84=8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081 +units=ft +no_defs  <>
-# Cayman Islands National Grid 2011
+# Cayman Islands National Grid 2011 (deprecated)
 <6141> +proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19.33333333333333 +lon_0=80.56666666666666 +x_0=899160 +y_0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs  <>
+# NAD27 / Michigan North
+# Unable to translate coordinate system EPSG:6200 into PROJ.4 format.
+#
+# NAD27 / Michigan Central
+# Unable to translate coordinate system EPSG:6201 into PROJ.4 format.
+#
+# NAD27 / Michigan South
+# Unable to translate coordinate system EPSG:6202 into PROJ.4 format.
+#
+# Macedonian State Coordinate System
+<6204> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=500000 +y_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m +no_defs  <>
+# SIRGAS 2000 / UTM zone 23N
+<6210> +proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# SIRGAS 2000 / UTM zone 24N
+<6211> +proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# MAGNA-SIRGAS / Arauca urban grid
+# Unable to translate coordinate system EPSG:6244 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Armenia urban grid
+# Unable to translate coordinate system EPSG:6245 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Barranquilla urban grid
+# Unable to translate coordinate system EPSG:6246 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Bogota urban grid
+# Unable to translate coordinate system EPSG:6247 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Bucaramanga urban grid
+# Unable to translate coordinate system EPSG:6248 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Cali urban grid
+# Unable to translate coordinate system EPSG:6249 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Cartagena urban grid
+# Unable to translate coordinate system EPSG:6250 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Cucuta urban grid
+# Unable to translate coordinate system EPSG:6251 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Florencia urban grid
+# Unable to translate coordinate system EPSG:6252 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Ibague urban grid
+# Unable to translate coordinate system EPSG:6253 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Inirida urban grid
+# Unable to translate coordinate system EPSG:6254 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Leticia urban grid
+# Unable to translate coordinate system EPSG:6255 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Manizales urban grid
+# Unable to translate coordinate system EPSG:6256 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Medellin urban grid
+# Unable to translate coordinate system EPSG:6257 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Mitu urban grid
+# Unable to translate coordinate system EPSG:6258 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Mocoa urban grid
+# Unable to translate coordinate system EPSG:6259 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Monteria urban grid
+# Unable to translate coordinate system EPSG:6260 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Neiva urban grid
+# Unable to translate coordinate system EPSG:6261 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Pasto urban grid
+# Unable to translate coordinate system EPSG:6262 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Pereira urban grid
+# Unable to translate coordinate system EPSG:6263 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Popayan urban grid
+# Unable to translate coordinate system EPSG:6264 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Puerto Carreno urban grid
+# Unable to translate coordinate system EPSG:6265 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Quibdo urban grid
+# Unable to translate coordinate system EPSG:6266 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Riohacha urban grid
+# Unable to translate coordinate system EPSG:6267 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / San Andres urban grid
+# Unable to translate coordinate system EPSG:6268 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / San Jose del Guaviare urban grid
+# Unable to translate coordinate system EPSG:6269 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Santa Marta urban grid
+# Unable to translate coordinate system EPSG:6270 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Sucre urban grid
+# Unable to translate coordinate system EPSG:6271 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Tunja urban grid
+# Unable to translate coordinate system EPSG:6272 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Valledupar urban grid
+# Unable to translate coordinate system EPSG:6273 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Villavicencio urban grid
+# Unable to translate coordinate system EPSG:6274 into PROJ.4 format.
+#
+# MAGNA-SIRGAS / Yopal urban grid
+# Unable to translate coordinate system EPSG:6275 into PROJ.4 format.
+#
+# Macedonia State Coordinate System zone 7
+<6316> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.9999 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=682,-203,480,0,0,0,0 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 59N
+<6328> +proj=utm +zone=59 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 60N
+<6329> +proj=utm +zone=60 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 1N
+<6330> +proj=utm +zone=1 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 2N
+<6331> +proj=utm +zone=2 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 3N
+<6332> +proj=utm +zone=3 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 4N
+<6333> +proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 5N
+<6334> +proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 6N
+<6335> +proj=utm +zone=6 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 7N
+<6336> +proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 8N
+<6337> +proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 9N
+<6338> +proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 10N
+<6339> +proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 11N
+<6340> +proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 12N
+<6341> +proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 13N
+<6342> +proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 14N
+<6343> +proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 15N
+<6344> +proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 16N
+<6345> +proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 17N
+<6346> +proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 18N
+<6347> +proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / UTM zone 19N
+<6348> +proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Conus Albers
+<6350> +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / EPSG Arctic zone 5-29
+<6351> +proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333333 +lat_0=72.02500919444445 +lon_0=-163 +x_0=29500000 +y_0=5500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / EPSG Arctic zone 5-31
+<6352> +proj=lcc +lat_1=73.66666666666667 +lat_2=70.33333333333333 +lat_0=72.02500919444445 +lon_0=-147 +x_0=31500000 +y_0=5500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / EPSG Arctic zone 6-14
+<6353> +proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.68747555555557 +lon_0=-165 +x_0=14500000 +y_0=6500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / EPSG Arctic zone 6-16
+<6354> +proj=lcc +lat_1=70.33333333333333 +lat_2=67 +lat_0=68.68747555555557 +lon_0=-147 +x_0=16500000 +y_0=6500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alabama East
+<6355> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.99996 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alabama West
+<6356> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# Mexico ITRF92 / LCC
+<6362> +proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / UTM zone 11N
+<6366> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / UTM zone 12N
+<6367> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / UTM zone 13N
+<6368> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / UTM zone 14N
+<6369> +proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / UTM zone 15N
+<6370> +proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / UTM zone 16N
+<6371> +proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# Mexico ITRF2008 / LCC
+<6372> +proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 7
+<6381> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 8
+<6382> +proj=tmerc +lat_0=0 +lon_0=24 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 9
+<6383> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 10
+<6384> +proj=tmerc +lat_0=0 +lon_0=30 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 11
+<6385> +proj=tmerc +lat_0=0 +lon_0=33 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 12
+<6386> +proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# UCS-2000 / Ukraine TM zone 13
+<6387> +proj=tmerc +lat_0=0 +lon_0=39 +k=1 +x_0=300000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,-0,0.35,0.736,0 +units=m +no_defs  <>
+# Cayman Islands National Grid 2011
+<6391> +proj=lcc +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19.33333333333333 +lon_0=-80.56666666666666 +x_0=899160 +y_0=579120 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=ft +no_defs  <>
+# NAD83(2011) / Alaska Albers
+<6393> +proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 1
+<6394> +proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +no_uoff +gamma=323.1301023611111 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 2
+<6395> +proj=tmerc +lat_0=54 +lon_0=-142 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 3
+<6396> +proj=tmerc +lat_0=54 +lon_0=-146 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 4
+<6397> +proj=tmerc +lat_0=54 +lon_0=-150 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 5
+<6398> +proj=tmerc +lat_0=54 +lon_0=-154 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 6
+<6399> +proj=tmerc +lat_0=54 +lon_0=-158 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 7
+<6400> +proj=tmerc +lat_0=54 +lon_0=-162 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 8
+<6401> +proj=tmerc +lat_0=54 +lon_0=-166 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 9
+<6402> +proj=tmerc +lat_0=54 +lon_0=-170 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Alaska zone 10
+<6403> +proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Arizona Central
+<6404> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Arizona Central (ft)
+<6405> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Arizona East
+<6406> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Arizona East (ft)
+<6407> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.9999 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Arizona West
+<6408> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Arizona West (ft)
+<6409> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933333 +x_0=213360 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Arkansas North
+<6410> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Arkansas North (ftUS)
+<6411> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Arkansas South
+<6412> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Arkansas South (ftUS)
+<6413> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / California Albers
+<6414> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 1
+<6415> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 1 (ftUS)
+<6416> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / California zone 2
+<6417> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 2 (ftUS)
+<6418> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / California zone 3
+<6419> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 3 (ftUS)
+<6420> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / California zone 4
+<6421> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 4 (ftUS)
+<6422> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / California zone 5
+<6423> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 5 (ftUS)
+<6424> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / California zone 6
+<6425> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / California zone 6 (ftUS)
+<6426> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Colorado Central
+<6427> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Colorado Central (ftUS)
+<6428> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Colorado North
+<6429> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Colorado North (ftUS)
+<6430> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Colorado South
+<6431> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Colorado South (ftUS)
+<6432> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Connecticut
+<6433> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Connecticut (ftUS)
+<6434> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Delaware
+<6435> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Delaware (ftUS)
+<6436> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Florida East
+<6437> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Florida East (ftUS)
+<6438> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Florida GDL Albers
+<6439> +proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Florida North
+<6440> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Florida North (ftUS)
+<6441> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Florida West
+<6442> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Florida West (ftUS)
+<6443> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941177 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Georgia East
+<6444> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Georgia East (ftUS)
+<6445> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.9999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Georgia West
+<6446> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Georgia West (ftUS)
+<6447> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.9999 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Idaho Central
+<6448> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Idaho Central (ftUS)
+<6449> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.9999473679999999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Idaho East
+<6450> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Idaho East (ftUS)
+<6451> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.9999473679999999 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Idaho West
+<6452> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Idaho West (ftUS)
+<6453> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933333 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Illinois East
+<6454> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Illinois East (ftUS)
+<6455> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.9999749999999999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Illinois West
+<6456> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Illinois West (ftUS)
+<6457> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941177 +x_0=699999.9999898402 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Indiana East
+<6458> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Indiana East (ftUS)
+<6459> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999966667 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Indiana West
+<6460> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Indiana West (ftUS)
+<6461> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999966667 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Iowa North
+<6462> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Iowa North (ftUS)
+<6463> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Iowa South
+<6464> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Iowa South (ftUS)
+<6465> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Kansas North
+<6466> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Kansas North (ftUS)
+<6467> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.99998984 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Kansas South
+<6468> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Kansas South (ftUS)
+<6469> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.99998984 +y_0=399999.99998984 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Kentucky North
+<6470> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Kentucky North (ftUS)
+<6471> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Kentucky Single Zone
+<6472> +proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Kentucky Single Zone (ftUS)
+<6473> +proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Kentucky South
+<6474> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Kentucky South (ftUS)
+<6475> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Louisiana North
+<6476> +proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Louisiana North (ftUS)
+<6477> +proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Louisiana South
+<6478> +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Louisiana South (ftUS)
+<6479> +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=999999.9999898402 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Maine CS2000 Central
+<6480> +proj=tmerc +lat_0=43.5 +lon_0=-69.125 +k=0.99998 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Maine CS2000 East
+<6481> +proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.99998 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Maine CS2000 West
+<6482> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.99998 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Maine East
+<6483> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Maine East (ftUS)
+<6484> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Maine West
+<6485> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Maine West (ftUS)
+<6486> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999966667 +x_0=900000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Maryland
+<6487> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Maryland (ftUS)
+<6488> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Massachusetts Island
+<6489> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Massachusetts Island (ftUS)
+<6490> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Massachusetts Mainland
+<6491> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Massachusetts Mainland (ftUS)
+<6492> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Michigan Central
+<6493> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Michigan Central (ft)
+<6494> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Michigan North
+<6495> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Michigan North (ft)
+<6496> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Michigan Oblique Mercator
+<6497> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +no_uoff +gamma=337.25556 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Michigan South
+<6498> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Michigan South (ft)
+<6499> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Minnesota Central
+<6500> +proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Minnesota Central (ftUS)
+<6501> +proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Minnesota North
+<6502> +proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Minnesota North (ftUS)
+<6503> +proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Minnesota South
+<6504> +proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Minnesota South (ftUS)
+<6505> +proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Mississippi East
+<6506> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Mississippi East (ftUS)
+<6507> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.99995 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Mississippi TM
+<6508> +proj=tmerc +lat_0=32.5 +lon_0=-89.75 +k=0.9998335 +x_0=500000 +y_0=1300000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Mississippi West
+<6509> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Mississippi West (ftUS)
+<6510> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.99995 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Missouri Central
+<6511> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Missouri East
+<6512> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933333 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Missouri West
+<6513> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941177 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Montana
+<6514> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Montana (ft)
+<6515> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Nebraska
+<6516> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Nebraska (ftUS) (deprecated)
+<6517> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs  <>
+# NAD83(2011) / Nevada Central
+<6518> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Nevada Central (ftUS)
+<6519> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.9999 +x_0=500000.00001016 +y_0=6000000 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Nevada East
+<6520> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Nevada East (ftUS)
+<6521> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.9999 +x_0=200000.00001016 +y_0=8000000.000010163 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Nevada West
+<6522> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Nevada West (ftUS)
+<6523> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.9999 +x_0=800000.0000101599 +y_0=3999999.99998984 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New Hampshire
+<6524> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New Hampshire (ftUS)
+<6525> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999966667 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New Jersey
+<6526> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New Jersey (ftUS)
+<6527> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New Mexico Central
+<6528> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New Mexico Central (ftUS)
+<6529> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.9999 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New Mexico East
+<6530> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New Mexico East (ftUS)
+<6531> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909091 +x_0=165000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New Mexico West
+<6532> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New Mexico West (ftUS)
+<6533> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999916667 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New York Central
+<6534> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New York Central (ftUS)
+<6535> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.9999375 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New York East
+<6536> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New York East (ftUS)
+<6537> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.9999 +x_0=150000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New York Long Island
+<6538> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New York Long Island (ftUS)
+<6539> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / New York West
+<6540> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / New York West (ftUS)
+<6541> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.9999375 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / North Carolina
+<6542> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / North Carolina (ftUS)
+<6543> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / North Dakota North
+<6544> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / North Dakota North (ft)
+<6545> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / North Dakota South
+<6546> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / North Dakota South (ft)
+<6547> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Ohio North
+<6548> +proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Ohio North (ftUS)
+<6549> +proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Ohio South
+<6550> +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Ohio South (ftUS)
+<6551> +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Oklahoma North
+<6552> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Oklahoma North (ftUS)
+<6553> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Oklahoma South
+<6554> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Oklahoma South (ftUS)
+<6555> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Oregon LCC (m)
+<6556> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Oregon GIC Lambert (ft)
+<6557> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Oregon North
+<6558> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Oregon North (ft)
+<6559> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Oregon South
+<6560> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Oregon South (ft)
+<6561> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / Pennsylvania North
+<6562> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Pennsylvania North (ftUS)
+<6563> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Pennsylvania South
+<6564> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Pennsylvania South (ftUS)
+<6565> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Puerto Rico and Virgin Is.
+<6566> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Rhode Island
+<6567> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Rhode Island (ftUS)
+<6568> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.99999375 +x_0=99999.99998983997 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / South Carolina
+<6569> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / South Carolina (ft)
+<6570> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(2011) / South Dakota North
+<6571> +proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / South Dakota North (ftUS)
+<6572> +proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / South Dakota South
+<6573> +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / South Dakota South (ftUS)
+<6574> +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Tennessee
+<6575> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Tennessee (ftUS)
+<6576> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Texas Central
+<6577> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas Central (ftUS)
+<6578> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Texas Centric Albers Equal Area
+<6579> +proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas Centric Lambert Conformal
+<6580> +proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas North
+<6581> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas North (ftUS)
+<6582> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Texas North Central
+<6583> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas North Central (ftUS)
+<6584> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Texas South
+<6585> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas South (ftUS)
+<6586> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Texas South Central
+<6587> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Texas South Central (ftUS)
+<6588> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Vermont
+<6589> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Vermont (ftUS)
+<6590> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964286 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Virginia Lambert
+<6591> +proj=lcc +lat_1=37 +lat_2=39.5 +lat_0=36 +lon_0=-79.5 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Virginia North
+<6592> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Virginia North (ftUS)
+<6593> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Virginia South
+<6594> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Virginia South (ftUS)
+<6595> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Washington North
+<6596> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Washington North (ftUS)
+<6597> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Washington South
+<6598> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Washington South (ftUS)
+<6599> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / West Virginia North
+<6600> +proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / West Virginia North (ftUS)
+<6601> +proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / West Virginia South
+<6602> +proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / West Virginia South (ftUS)
+<6603> +proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wisconsin Central (deprecated)
+<6604> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# NAD83(2011) / Wisconsin Central (ftUS)
+<6605> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wisconsin North
+<6606> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wisconsin North (ftUS)
+<6607> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wisconsin South
+<6608> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wisconsin South (ftUS)
+<6609> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wisconsin Transverse Mercator
+<6610> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9996 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wyoming East
+<6611> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wyoming East (ftUS)
+<6612> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.9999375 +x_0=200000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wyoming East Central
+<6613> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wyoming East Central (ftUS)
+<6614> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.9999375 +x_0=399999.99998984 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wyoming West
+<6615> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wyoming West (ftUS)
+<6616> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.9999375 +x_0=800000.0000101599 +y_0=99999.99998983997 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Wyoming West Central
+<6617> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Wyoming West Central (ftUS)
+<6618> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.9999375 +x_0=600000 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Utah Central
+<6619> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Utah North
+<6620> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Utah South
+<6621> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(CSRS) / Quebec Lambert
+<6622> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# NAD83 / Quebec Albers
+<6623> +proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs  <>
+# NAD83(CSRS) / Quebec Albers
+<6624> +proj=aea +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# NAD83(2011) / Utah Central (ftUS)
+<6625> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=2000000.00001016 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Utah North (ftUS)
+<6626> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.00001016 +y_0=999999.9999898402 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(2011) / Utah South (ftUS)
+<6627> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.00001016 +y_0=3000000 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(PA11) / Hawaii zone 1
+<6628> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / Hawaii zone 2
+<6629> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999966667 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / Hawaii zone 3
+<6630> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / Hawaii zone 4
+<6631> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.99999 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / Hawaii zone 5
+<6632> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / Hawaii zone 3 (ftUS)
+<6633> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.99999 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(PA11) / UTM zone 4N
+<6634> +proj=utm +zone=4 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / UTM zone 5N
+<6635> +proj=utm +zone=5 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(PA11) / UTM zone 2S
+<6636> +proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(MA11) / Guam Map Grid
+<6637> +proj=tmerc +lat_0=13.5 +lon_0=144.75 +k=1 +x_0=100000 +y_0=200000 +ellps=GRS80 +units=m +no_defs  <>
+# Karbala 1979 / Iraq National Grid
+<6646> +proj=tmerc +lat_0=29.02626833333333 +lon_0=46.5 +k=0.9994 +x_0=800000 +y_0=0 +ellps=clrk80 +towgs84=70.995,-335.916,262.898,0,0,0,0 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS I
+<6669> +proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS II
+<6670> +proj=tmerc +lat_0=33 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS III
+<6671> +proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS IV
+<6672> +proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS V
+<6673> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS VI
+<6674> +proj=tmerc +lat_0=36 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS VII
+<6675> +proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS VIII
+<6676> +proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS IX
+<6677> +proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS X
+<6678> +proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XI
+<6679> +proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XII
+<6680> +proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XIII
+<6681> +proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XIV
+<6682> +proj=tmerc +lat_0=26 +lon_0=142 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XV
+<6683> +proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XVI
+<6684> +proj=tmerc +lat_0=26 +lon_0=124 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XVII
+<6685> +proj=tmerc +lat_0=26 +lon_0=131 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XVIII
+<6686> +proj=tmerc +lat_0=20 +lon_0=136 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / Japan Plane Rectangular CS XIX
+<6687> +proj=tmerc +lat_0=26 +lon_0=154 +k=0.9999 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / UTM zone 51N
+<6688> +proj=utm +zone=51 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / UTM zone 52N
+<6689> +proj=utm +zone=52 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / UTM zone 53N
+<6690> +proj=utm +zone=53 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / UTM zone 54N
+<6691> +proj=utm +zone=54 +ellps=GRS80 +units=m +no_defs  <>
+# JGD2011 / UTM zone 55N
+<6692> +proj=utm +zone=55 +ellps=GRS80 +units=m +no_defs  <>
+# WGS 84 / TM 60 SW
+<6703> +proj=tmerc +lat_0=0 +lon_0=-60 +k=0.9996 +x_0=500000 +y_0=10000000 +datum=WGS84 +units=m +no_defs  <>
+# RDN2008 / TM32
+<6707> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# RDN2008 / TM33
+<6708> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# RDN2008 / TM34
+<6709> +proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# WGS 84 / CIG92
+<6720> +proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.000024 +x_0=50000 +y_0=1300000 +datum=WGS84 +units=m +no_defs  <>
+# GDA94 / CIG94
+<6721> +proj=tmerc +lat_0=0 +lon_0=105.625 +k=1.00002514 +x_0=50000 +y_0=1300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# WGS 84 / CKIG92
+<6722> +proj=tmerc +lat_0=0 +lon_0=96.875 +k=1 +x_0=50000 +y_0=1400000 +datum=WGS84 +units=m +no_defs  <>
+# GDA94 / CKIG94
+<6723> +proj=tmerc +lat_0=0 +lon_0=96.875 +k=0.99999387 +x_0=50000 +y_0=1500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 41
+<6732> +proj=utm +zone=41 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 42
+<6733> +proj=utm +zone=42 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 43
+<6734> +proj=utm +zone=43 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 44
+<6735> +proj=utm +zone=44 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 46
+<6736> +proj=utm +zone=46 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 47
+<6737> +proj=utm +zone=47 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# GDA94 / MGA zone 59
+<6738> +proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# NAD83(CORS96) / Oregon LCC (m)
+<6867> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(CORS96) / Oregon GIC Lambert (ft)
+<6868> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# ETRS89 / Albania 2010
+<6870> +proj=tmerc +lat_0=0 +lon_0=20 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# RDN2008 / Italy zone
+<6875> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.9985000000000001 +x_0=7000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# RDN2008 / Zone 12
+<6876> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=3000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
+# NAD83(2011) / Wisconsin Central
+<6879> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(2011) / Nebraska (ftUS)
+<6880> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.00001016 +y_0=0 +ellps=GRS80 +units=us-ft +no_defs  <>
+# NAD83(CORS96) / Oregon North
+<6884> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(CORS96) / Oregon North (ft)
+<6885> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
+# NAD83(CORS96) / Oregon South
+<6886> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs  <>
+# NAD83(CORS96) / Oregon South (ft)
+<6887> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +units=ft +no_defs  <>
 # Pulkovo 1995 / Gauss-Kruger zone 4
 <20004> +proj=tmerc +lat_0=0 +lon_0=21 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.22 +units=m +no_defs  <>
 # Pulkovo 1995 / Gauss-Kruger zone 5
@@ -6311,15 +7120,15 @@
 # Carthage / Sud Tunisie
 <22392> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.999625769 +x_0=500000 +y_0=300000 +datum=carthage +units=m +no_defs  <>
 # Corrego Alegre 1970-72 / UTM zone 21S
-<22521> +proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs  <>
+<22521> +proj=utm +zone=21 +south +ellps=intl +towgs84=-205.57,168.77,-4.12,0,0,0,0 +units=m +no_defs  <>
 # Corrego Alegre 1970-72 / UTM zone 22S
-<22522> +proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs  <>
+<22522> +proj=utm +zone=22 +south +ellps=intl +towgs84=-205.57,168.77,-4.12,0,0,0,0 +units=m +no_defs  <>
 # Corrego Alegre 1970-72 / UTM zone 23S
-<22523> +proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs  <>
+<22523> +proj=utm +zone=23 +south +ellps=intl +towgs84=-205.57,168.77,-4.12,0,0,0,0 +units=m +no_defs  <>
 # Corrego Alegre 1970-72 / UTM zone 24S
-<22524> +proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs  <>
+<22524> +proj=utm +zone=24 +south +ellps=intl +towgs84=-205.57,168.77,-4.12,0,0,0,0 +units=m +no_defs  <>
 # Corrego Alegre 1970-72 / UTM zone 25S
-<22525> +proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs  <>
+<22525> +proj=utm +zone=25 +south +ellps=intl +towgs84=-205.57,168.77,-4.12,0,0,0,0 +units=m +no_defs  <>
 # Deir ez Zor / Levant Zone
 <22700> +proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-190.421,8.532,238.69,0,0,0,0 +units=m +no_defs  <>
 # Deir ez Zor / Syria Lambert
@@ -6824,11 +7633,11 @@
 <26802> +proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defs  <>
 # NAD Michigan / Michigan West (deprecated)
 <26803> +proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909091 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defs  <>
-# NAD Michigan / Michigan North
+# NAD Michigan / Michigan North (deprecated)
 <26811> +proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defs  <>
-# NAD Michigan / Michigan Central
+# NAD Michigan / Michigan Central (deprecated)
 <26812> +proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defs  <>
-# NAD Michigan / Michigan South
+# NAD Michigan / Michigan South (deprecated)
 <26813> +proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +units=us-ft +no_defs  <>
 # NAD83 / Maine East (ftUS) (deprecated)
 <26814> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.9999 +x_0=300000 +y_0=0 +datum=NAD83 +units=m +no_defs  <>
@@ -7272,7 +8081,7 @@
 <28193> +proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs  <>
 # Pointe Noire / UTM zone 32S
 <28232> +proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +towgs84=-148,51,-291,0,0,0,0 +units=m +no_defs  <>
-# GDA94 / MGA zone 48 (deprecated)
+# GDA94 / MGA zone 48
 <28348> +proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
 # GDA94 / MGA zone 49
 <28349> +proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs  <>
@@ -7427,7 +8236,7 @@
 # SAD69 / Brazil Polyconic (deprecated)
 <29100> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / Brazil Polyconic
-<29101> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29101> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 18N (deprecated)
 <29118> +proj=utm +zone=18 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 19N (deprecated)
@@ -7439,15 +8248,15 @@
 # SAD69 / UTM zone 22N (deprecated)
 <29122> +proj=utm +zone=22 +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 18N
-<29168> +proj=utm +zone=18 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29168> +proj=utm +zone=18 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 19N
-<29169> +proj=utm +zone=19 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29169> +proj=utm +zone=19 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 20N
-<29170> +proj=utm +zone=20 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29170> +proj=utm +zone=20 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 21N
-<29171> +proj=utm +zone=21 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29171> +proj=utm +zone=21 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 22N
-<29172> +proj=utm +zone=22 +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29172> +proj=utm +zone=22 +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 17S (deprecated)
 <29177> +proj=utm +zone=17 +south +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 18S (deprecated)
@@ -7467,23 +8276,23 @@
 # SAD69 / UTM zone 25S (deprecated)
 <29185> +proj=utm +zone=25 +south +ellps=GRS67 +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 17S
-<29187> +proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29187> +proj=utm +zone=17 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 18S
-<29188> +proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29188> +proj=utm +zone=18 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 19S
-<29189> +proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29189> +proj=utm +zone=19 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 20S
-<29190> +proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29190> +proj=utm +zone=20 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 21S
-<29191> +proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29191> +proj=utm +zone=21 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 22S
-<29192> +proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29192> +proj=utm +zone=22 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 23S
-<29193> +proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29193> +proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 24S
-<29194> +proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29194> +proj=utm +zone=24 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # SAD69 / UTM zone 25S
-<29195> +proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-57,1,-41,0,0,0,0 +units=m +no_defs  <>
+<29195> +proj=utm +zone=25 +south +ellps=aust_SA +towgs84=-66.87,4.37,-38.52,0,0,0,0 +units=m +no_defs  <>
 # Sapper Hill 1943 / UTM zone 20S
 <29220> +proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs  <>
 # Sapper Hill 1943 / UTM zone 21S
@@ -8842,3 +9651,579 @@
 <32761> +proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m +no_defs  <>
 # WGS 84 / TM 36 SE
 <32766> +proj=tmerc +lat_0=0 +lon_0=36 +k=0.9996 +x_0=500000 +y_0=10000000 +datum=WGS84 +units=m +no_defs  <>
+# Unknown
+<3822> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<3887> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4000> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4039> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4073> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4079> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4328> +proj=geocent +datum=WGS84 +units=m +no_defs  <>
+# Unknown
+<4330> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4331> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4332> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4333> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4334> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4335> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4336> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4337> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4338> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4340> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4342> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4344> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4346> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4348> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4350> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4352> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4354> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4356> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4358> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4360> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4362> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4364> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4366> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4368> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4370> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4372> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4374> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4376> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4378> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4380> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4382> +proj=geocent +ellps=intl +units=m +no_defs  <>
+# Unknown
+<4384> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4385> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4387> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4389> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4465> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4468> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4473> +proj=geocent +ellps=intl +units=m +no_defs  <>
+# Unknown
+<4479> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4481> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4556> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4882> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4884> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4886> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4888> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4890> +proj=geocent +ellps=WGS66 +units=m +no_defs  <>
+# Unknown
+<4892> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4894> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4896> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4897> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4899> +proj=geocent +ellps=intl +units=m +no_defs  <>
+# Unknown
+<4906> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4908> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4910> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4911> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4912> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4913> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4914> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4915> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4916> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4917> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4918> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4919> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4920> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4922> +proj=geocent +a=6378136 +b=6356751.361745712 +units=m +no_defs  <>
+# Unknown
+<4924> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4926> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4928> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4930> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4932> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4934> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4936> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4938> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4940> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4942> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4944> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4946> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4948> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4950> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4952> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4954> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4956> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4958> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4960> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4962> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4964> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4966> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4968> +proj=geocent +ellps=intl +units=m +no_defs  <>
+# Unknown
+<4970> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4972> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4974> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4976> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4978> +proj=geocent +datum=WGS84 +units=m +no_defs  <>
+# Unknown
+<4980> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4982> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<4984> +proj=geocent +ellps=WGS72 +units=m +no_defs  <>
+# Unknown
+<4986> +proj=geocent +ellps=WGS72 +units=m +no_defs  <>
+# Unknown
+<4988> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4990> +proj=geocent +ellps=krass +units=m +no_defs  <>
+# Unknown
+<4992> +proj=geocent +ellps=krass +units=m +no_defs  <>
+# Unknown
+<4994> +proj=geocent +ellps=clrk66 +units=m +no_defs  <>
+# Unknown
+<4996> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<4998> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5011> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5244> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5250> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5262> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5322> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5332> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5341> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5352> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5358> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5363> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<5368> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5369> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5379> +proj=geocent +ellps=WGS84 +units=m +no_defs  <>
+# Unknown
+<5391> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5487> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5544> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5558> +proj=geocent +ellps=krass +units=m +no_defs  <>
+# Unknown
+<5591> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<5828> +proj=geocent +ellps=bessel +units=m +no_defs  <>
+# Unknown
+<5884> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6133> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6317> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6320> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6323> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6363> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6666> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6704> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# Unknown
+<6781> +proj=geocent +ellps=GRS80 +units=m +no_defs  <>
+# KKJ / Finland Uniform Coordinate System
+<3901> +proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=3500000 +y_0=0 +ellps=intl +towgs84=-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496 +units=m +vunits=m +no_defs  <>
+# ETRS89 / TM35FIN(N,E)
+<3902> +proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / TM35FIN(N,E)
+<3903> +proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / DKTM1
+<4097> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.99998 +x_0=200000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / DKTM2
+<4098> +proj=tmerc +lat_0=0 +lon_0=10 +k=0.99998 +x_0=400000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / DKTM3
+<4099> +proj=tmerc +lat_0=0 +lon_0=11.75 +k=0.99998 +x_0=600000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / DKTM4
+<4100> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=800000 +y_0=-5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / Faroe TM
+<5318> +proj=tmerc +lat_0=0 +lon_0=-7 +k=0.999997 +x_0=200000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83
+<5498> +proj=longlat +datum=NAD83 +geoidgrids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx +vunits=m +no_defs  <>
+# NAD83(HARN)
+<5499> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +geoidgrids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx +vunits=m +no_defs  <>
+# NAD83(NSRS2007)
+<5500> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +geoidgrids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 31N
+<5554> +proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 32N
+<5555> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 33N
+<5556> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# FEH2010 / Fehmarnbelt TM
+<5598> +proj=tmerc +lat_0=0 +lon_0=11.33333333333333 +k=1 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99
+<5628> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
+# RGF93 / Lambert-93
+<5698> +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# RGF93 / Lambert-93
+<5699> +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone I
+<5707> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone IV
+<5708> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# DB_REF / 3-degree Gauss-Kruger zone 2 (E-N)
+<5832> +proj=tmerc +lat_0=0 +lon_0=6 +k=1 +x_0=2500000 +y_0=0 +ellps=bessel +units=m +vunits=m +no_defs  <>
+# DB_REF / 3-degree Gauss-Kruger zone 3 (E-N)
+<5833> +proj=tmerc +lat_0=0 +lon_0=9 +k=1 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +vunits=m +no_defs  <>
+# DB_REF / 3-degree Gauss-Kruger zone 4 (E-N)
+<5834> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +vunits=m +no_defs  <>
+# DB_REF / 3-degree Gauss-Kruger zone 5 (E-N)
+<5835> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +vunits=m +no_defs  <>
+# SWEREF99 TM
+<5845> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 12 00
+<5846> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 13 30
+<5847> +proj=tmerc +lat_0=0 +lon_0=13.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 15 00
+<5848> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 16 30
+<5849> +proj=tmerc +lat_0=0 +lon_0=16.5 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 18 00
+<5850> +proj=tmerc +lat_0=0 +lon_0=18 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 14 15
+<5851> +proj=tmerc +lat_0=0 +lon_0=14.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 15 45
+<5852> +proj=tmerc +lat_0=0 +lon_0=15.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 17 15
+<5853> +proj=tmerc +lat_0=0 +lon_0=17.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 18 45
+<5854> +proj=tmerc +lat_0=0 +lon_0=18.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 20 15
+<5855> +proj=tmerc +lat_0=0 +lon_0=20.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 21 45
+<5856> +proj=tmerc +lat_0=0 +lon_0=21.75 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# SWEREF99 23 15
+<5857> +proj=tmerc +lat_0=0 +lon_0=23.25 +k=1 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89
+<5942> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 5
+<5945> +proj=tmerc +lat_0=58 +lon_0=5.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 6
+<5946> +proj=tmerc +lat_0=58 +lon_0=6.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 7
+<5947> +proj=tmerc +lat_0=58 +lon_0=7.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 8
+<5948> +proj=tmerc +lat_0=58 +lon_0=8.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 9
+<5949> +proj=tmerc +lat_0=58 +lon_0=9.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 10
+<5950> +proj=tmerc +lat_0=58 +lon_0=10.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 11
+<5951> +proj=tmerc +lat_0=58 +lon_0=11.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 12
+<5952> +proj=tmerc +lat_0=58 +lon_0=12.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 13
+<5953> +proj=tmerc +lat_0=58 +lon_0=13.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 14
+<5954> +proj=tmerc +lat_0=58 +lon_0=14.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 15
+<5955> +proj=tmerc +lat_0=58 +lon_0=15.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 16
+<5956> +proj=tmerc +lat_0=58 +lon_0=16.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 17
+<5957> +proj=tmerc +lat_0=58 +lon_0=17.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 18
+<5958> +proj=tmerc +lat_0=58 +lon_0=18.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 19
+<5959> +proj=tmerc +lat_0=58 +lon_0=19.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 20
+<5960> +proj=tmerc +lat_0=58 +lon_0=20.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 21
+<5961> +proj=tmerc +lat_0=58 +lon_0=21.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 22
+<5962> +proj=tmerc +lat_0=58 +lon_0=22.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 23
+<5963> +proj=tmerc +lat_0=58 +lon_0=23.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 24
+<5964> +proj=tmerc +lat_0=58 +lon_0=24.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 25
+<5965> +proj=tmerc +lat_0=58 +lon_0=25.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 26
+<5966> +proj=tmerc +lat_0=58 +lon_0=26.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 27
+<5967> +proj=tmerc +lat_0=58 +lon_0=27.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 28
+<5968> +proj=tmerc +lat_0=58 +lon_0=28.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 29
+<5969> +proj=tmerc +lat_0=58 +lon_0=29.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 30
+<5970> +proj=tmerc +lat_0=58 +lon_0=30.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 31N
+<5971> +proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 32N
+<5972> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 33N
+<5973> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 34N
+<5974> +proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 35N
+<5975> +proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 36N
+<5976> +proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89
+<6144> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 5
+<6145> +proj=tmerc +lat_0=58 +lon_0=5.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 6
+<6146> +proj=tmerc +lat_0=58 +lon_0=6.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 7
+<6147> +proj=tmerc +lat_0=58 +lon_0=7.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 8
+<6148> +proj=tmerc +lat_0=58 +lon_0=8.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 9
+<6149> +proj=tmerc +lat_0=58 +lon_0=9.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 10
+<6150> +proj=tmerc +lat_0=58 +lon_0=10.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 11
+<6151> +proj=tmerc +lat_0=58 +lon_0=11.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 12
+<6152> +proj=tmerc +lat_0=58 +lon_0=12.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 13
+<6153> +proj=tmerc +lat_0=58 +lon_0=13.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 14
+<6154> +proj=tmerc +lat_0=58 +lon_0=14.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 15
+<6155> +proj=tmerc +lat_0=58 +lon_0=15.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 16
+<6156> +proj=tmerc +lat_0=58 +lon_0=16.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 17
+<6157> +proj=tmerc +lat_0=58 +lon_0=17.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 18
+<6158> +proj=tmerc +lat_0=58 +lon_0=18.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 19
+<6159> +proj=tmerc +lat_0=58 +lon_0=19.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 20
+<6160> +proj=tmerc +lat_0=58 +lon_0=20.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 21
+<6161> +proj=tmerc +lat_0=58 +lon_0=21.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 22
+<6162> +proj=tmerc +lat_0=58 +lon_0=22.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 23
+<6163> +proj=tmerc +lat_0=58 +lon_0=23.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 24
+<6164> +proj=tmerc +lat_0=58 +lon_0=24.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 25
+<6165> +proj=tmerc +lat_0=58 +lon_0=25.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 26
+<6166> +proj=tmerc +lat_0=58 +lon_0=26.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 27
+<6167> +proj=tmerc +lat_0=58 +lon_0=27.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 28
+<6168> +proj=tmerc +lat_0=58 +lon_0=28.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 29
+<6169> +proj=tmerc +lat_0=58 +lon_0=29.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / NTM zone 30
+<6170> +proj=tmerc +lat_0=58 +lon_0=30.5 +k=1 +x_0=100000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 31N
+<6171> +proj=utm +zone=31 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 32N
+<6172> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 33N
+<6173> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 34N
+<6174> +proj=utm +zone=34 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 35N
+<6175> +proj=utm +zone=35 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 36N
+<6176> +proj=utm +zone=36 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# Belge 1972 / Belgian Lambert 72
+<6190> +proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=-106.869,52.2978,-103.724,0.3366,-0.457,1.8422,-1.2747 +units=m +vunits=m +no_defs  <>
+# NAD83(2011)
+<6349> +proj=longlat +ellps=GRS80 +geoidgrids=g2012a_conus.gtx,g2012a_alaska.gtx,g2012a_guam.gtx,g2012a_hawaii.gtx,g2012a_puertorico.gtx,g2012a_samoa.gtx +vunits=m +no_defs  <>
+# NAD83(CSRS)
+<6649> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 7N
+<6650> +proj=utm +zone=7 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 8N
+<6651> +proj=utm +zone=8 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 9N
+<6652> +proj=utm +zone=9 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 10N
+<6653> +proj=utm +zone=10 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 11N
+<6654> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 12N
+<6655> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 13N
+<6656> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 14N
+<6657> +proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 15N
+<6658> +proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 16N
+<6659> +proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 17N
+<6660> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 18N
+<6661> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 19N
+<6662> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 20N
+<6663> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 21N
+<6664> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NAD83(CSRS) / UTM zone 22N
+<6665> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# JGD2000
+<6696> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
+# JGD2011
+<6697> +proj=longlat +ellps=GRS80 +vunits=m +no_defs  <>
+# Tokyo
+<6700> +proj=longlat +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0 +vunits=m +no_defs  <>
+# WGS 84 / Pseudo-Mercator
+<6871> +proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +geoidgrids=egm08_25.gtx +vunits=m +no_defs  <>
+# NTF (Paris)
+<7400> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +vunits=m +no_defs  <>
+# NTF (Paris) / France II (deprecated)
+<7401> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / France II (deprecated)
+<7402> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / France III (deprecated)
+<7403> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# RT90
+<7404> +proj=longlat +ellps=bessel +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0 +vunits=m +no_defs  <>
+# OSGB 1936 / British National Grid
+<7405> +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +datum=OSGB36 +units=m +vunits=m +no_defs  <>
+# NAD27
+<7406> +proj=longlat +datum=NAD27 +vunits=us-ft +no_defs  <>
+# NAD27 / Texas North
+<7407> +proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +datum=NAD27 +units=us-ft +vunits=us-ft +no_defs  <>
+# Amersfoort
+<7408> +proj=longlat +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +vunits=m +no_defs  <>
+# ETRS89
+<7409> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
+# PSD93
+<7410> +proj=longlat +ellps=clrk80 +towgs84=-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101 +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone II
+<7411> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone II
+<7412> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone III
+<7413> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# Tokyo
+<7414> +proj=longlat +ellps=bessel +towgs84=-146.414,507.337,680.507,0,0,0,0 +vunits=m +no_defs  <>
+# Amersfoort / RD New
+<7415> +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 32N
+<7416> +proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / UTM zone 33N
+<7417> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / Kp2000 Jutland
+<7418> +proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.99995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / Kp2000 Zealand
+<7419> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.99995 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# ETRS89 / Kp2000 Bornholm
+<7420> +proj=tmerc +lat_0=0 +lon_0=15 +k=1 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone II
+<7421> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# NTF (Paris) / Lambert zone III
+<7422> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +vunits=m +no_defs  <>
+# ETRS89
+<7423> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +vunits=m +no_defs  <>
diff --git a/nad/proj_def.dat b/nad/proj_def.dat
deleted file mode 100644
index 00dff28..0000000
--- a/nad/proj_def.dat
+++ /dev/null
@@ -1,17 +0,0 @@
-# Projection library defaults file
-# SCCSID--- @(#)proj_def.dat	4.3	94/02/23	GIE	REL"
-# very preliminary version
-<general>
-ellps=WGS84 
-<>
-<aea> # Conterminous U.S. map
-lat_1=29.5
-lat_2=45.5
-<>
-<lcc> # Conterminous U.S. map
-lat_1=33
-lat_2=45
-<>
-<lagrng>
-W=2
-<>
diff --git a/nad/testvarious b/nad/testvarious
index c20190e..fded86e 100755
--- a/nad/testvarious
+++ b/nad/testvarious
@@ -7,7 +7,7 @@ EXE=$1
 
 usage()
 {
-    echo "Usage: ${0} <path to 'cs2cs' program>" 
+    echo "Usage: ${0} <path to 'cs2cs' program>"
     echo
     exit 1
 }
@@ -131,8 +131,8 @@ EOF
 #echo "#############################################################" >> ${OUT}
 #echo Test conversion between geocentric latlong and geodetic latlong >> ${OUT}
 #
-# The +geoc flag does not currently work with pj_transform() so this is 
-# disabled. 
+# The +geoc flag does not currently work with pj_transform() so this is
+# disabled.
 #
 #$EXE +proj=latlong +datum=WGS84 +geoc \
 # +to +proj=latlong +datum=WGS84  \
@@ -192,10 +192,10 @@ $EXE +proj=etmerc +k=0.998 +lon_0=-20 +datum=WGS84 +x_0=10000 +y_0=20000 \
  +to +proj=latlong +datum=WGS84 \
  -E >>${OUT} <<EOF
 10000 20000
-500000 2000000  
-1000000 2000000  
-2000000 2000000  
-4000000 2000000  
+500000 2000000
+1000000 2000000
+2000000 2000000
+4000000 2000000
 EOF
 #
 echo "##############################################################" >> ${OUT}
@@ -205,10 +205,10 @@ $EXE +proj=latlong +datum=WGS84 \
  +to +proj=etmerc +k=0.998 +lon_0=-20 +datum=WGS84 +x_0=10000 +y_0=20000 \
  -E >>${OUT} <<EOF
 0dN 0.000
-15d22'16.108"W	17d52'53.478"N 0.000  
-10d40'55.532"W	17d42'48.526"N 0.000  
-1d32'21.33"W	17d3'47.233"N 0.000  
-15d4'42.357"E	14d48'56.372"N 0.000  
+15d22'16.108"W	17d52'53.478"N 0.000
+10d40'55.532"W	17d42'48.526"N 0.000
+1d32'21.33"W	17d3'47.233"N 0.000
+15d4'42.357"E	14d48'56.372"N 0.000
 EOF
 #
 echo "##############################################################" >> ${OUT}
@@ -218,10 +218,10 @@ $EXE +proj=tmerc +k=0.998 +lon_0=-20 +datum=WGS84 +x_0=10000 +y_0=20000 \
  +to +proj=latlong +datum=WGS84 \
  -E >>${OUT} <<EOF
 10000 20000
-500000 2000000  
-1000000 2000000  
-2000000 2000000  
-4000000 2000000  
+500000 2000000
+1000000 2000000
+2000000 2000000
+4000000 2000000
 EOF
 #
 echo "##############################################################" >> ${OUT}
@@ -231,10 +231,10 @@ $EXE +proj=latlong +datum=WGS84 \
  +to +proj=tmerc +k=0.998 +lon_0=-20 +datum=WGS84 +x_0=10000 +y_0=20000 \
  -E >>${OUT} <<EOF
 0dN 0.000
-15d22'16.108"W	17d52'53.478"N 0.000  
-10d40'55.532"W	17d42'48.526"N 0.000  
-1d32'21.33"W	17d3'47.233"N 0.000  
-15d4'42.357"E	14d48'56.372"N 0.000  
+15d22'16.108"W	17d52'53.478"N 0.000
+10d40'55.532"W	17d42'48.526"N 0.000
+1d32'21.33"W	17d3'47.233"N 0.000
+15d4'42.357"E	14d48'56.372"N 0.000
 EOF
 #
 echo "##############################################################" >> ${OUT}
@@ -243,7 +243,7 @@ echo "Test robinson projection (#113)" >> ${OUT}
 $EXE +proj=latlong +datum=WGS84 \
  +to +proj=robin +datum=WGS84 \
  -E >>${OUT} <<EOF
--30 40 
+-30 40
 -35 45
 20 40
 EOF
@@ -339,35 +339,101 @@ $EXE +proj=latlong +a=5 +e=0.8 +r_a=4.3220011711888882\
 0.0 3.351278550178025
 0.0 -3.351278550178025
 EOF
+
 echo "##############################################################" >> ${OUT}
-echo "Test forward projection on sphere" >> ${OUT}
-$EXE +proj=latlong +a=1 +lon_0=0 \
- +to +proj=rhealpix +a=1 +lon_0=0 +npole=0 +spole=0 -f '%.'5'f' \
- -E >>${OUT} <<EOF
-0 41.81031
--90 0
+echo "Test rHEALPix forward projection on sphere north=0 south=0" >> ${OUT}
+$EXE +proj=latlong +R=5 \
+ +to +proj=rhealpix +R=5 +north_square=0 +south_square=0 -f '%.'5'f' \
+  -E >>${OUT} <<EOF
+-180 30.0
+-180 -25.714285714285715
+0 0
+60.0 41.809314895778598
 EOF
-echo "Test inverse projection on sphere" >> ${OUT}
-$EXE +proj=latlong +a=1 +lon_0=0 \
- +to +proj=rhealpix +a=1 +lon_0=0 +npole=0 +spole=0 -f '%.'5'f' -I\
- -E >>${OUT} <<EOF
-0 0.7853981633974483
--1.5707963267948966 0
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix forward projection on sphere north=1 south=1" >> ${OUT}
+$EXE +proj=latlong +R=5 \
+ +to +proj=rhealpix +R=5 +north_square=1 +south_square=1 -f '%.'5'f' \
+  -E >>${OUT} <<EOF
+-180 30.0
+-180 -25.714285714285715
+0 0
+60.0 41.809314895778598
 EOF
-echo "Test forward projection on ellipsoid" >> ${OUT}
-$EXE +proj=latlong +a=1 +lon_0=0 +ellps=WGS84 \
- +to +proj=rhealpix +a=1 +lon_0=0 +ellps=WGS84 +npole=0 +spole=0 -f '%.'5'f' \
- -E >>${OUT} <<EOF
-0 41.937853904844985
--90 0
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix inverse projection on sphere north=0 south=0" >> ${OUT}
+$EXE +proj=latlong +R=5 \
+ +to +proj=rhealpix +R=5 +north_square=0 +south_square=0 -f '%.'5'f' -I\
+  -E >>${OUT} <<EOF
+0.0 0.0
+0.0 3.9269908169872414
+0.0 -3.9269908169872414
+7.853981633974483 0.0
+-7.853981633974483 0.0
 EOF
-echo "Test inverse projection on ellipsoid" >> ${OUT}
-$EXE +proj=latlong +a=1 +lon_0=0 +ellps=WGS84 \
- +to +proj=rhealpix +a=1 +lon_0=0 -I +ellps=WGS84 +npole=0 +spole=0 -f '%.'5'f'\
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix inverse projection on sphere north=1 south=1" >> ${OUT}
+$EXE +proj=latlong +R=5 \
+ +to +proj=rhealpix +R=5 +north_square=1 +south_square=1 -f '%.'5'f' -I\
+  -E >>${OUT} <<EOF
+0.0 0.0
+0.0 3.9269908169872414
+0.0 -3.9269908169872414
+7.853981633974483 0.0
+-7.853981633974483 0.0
+EOF
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix forward projection on ellipsoid north=0 south=0" >> ${OUT}
+$EXE +proj=latlong +a=5 +e=0.8 +r_a=4.3220011711888882\
+ +to +proj=rhealpix +a=5 +e=0.8 +r_a=4.3220011711888882 +north_square=0 +south_square=0 -f '%.'5'f' \
+  -E >>${OUT} <<EOF
+0 0
+0 41.810314895778596
+0 -41.810314895778596
+90.0 0
+-90.0 0
+EOF
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix forward projection on ellipsoid north=1 south=1" >> ${OUT}
+$EXE +proj=latlong +a=5 +e=0.8 +r_a=4.3220011711888882\
+ +to +proj=rhealpix +a=5 +e=0.8 +r_a=4.3220011711888882 +north_square=1 +south_square=1 -f '%.'5'f' \
+  -E >>${OUT} <<EOF
+0 0
+0 41.810314895778596
+0 -41.810314895778596
+90.0 0
+-90.0 0
+EOF
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix inverse projection on ellipsoid north=0 south=0" >> ${OUT}
+$EXE +proj=latlong +a=5 +e=0.8 +r_a=4.3220011711888882\
+ +to +proj=rhealpix +a=5 -I +e=0.8 +r_a=4.3220011711888882 +north_square=0 +south_square=0 -f '%.'5'f'\
+  -E >>${OUT} <<EOF
+0.0 0.0
+0.0 2.0547874222147415
+0.0 -2.0547874222147415
+6.788983564106746 0.0
+-6.788983564106746 0.0
+EOF
+
+echo "##############################################################" >> ${OUT}
+echo "Test rHEALPix inverse projection on ellipsoid north=1 south=1" >> ${OUT}
+$EXE +proj=latlong +a=5 +e=0.8 +r_a=4.3220011711888882\
+ +to +proj=rhealpix +a=5 -I +e=0.8 +r_a=4.3220011711888882 +north_square=1 +south_square=1 -f '%.'5'f'\
  -E >>${OUT} <<EOF
-0 0.7853981633974483
--1.5707963267948966 0
+0.0 0.0
+0.0 2.0547874222147415
+0.0 -2.0547874222147415
+6.788983564106746 0.0
+-6.788983564106746 0.0
 EOF
+
 echo "##############################################################" >> ${OUT}
 echo "Test geos projection" >> ${OUT}
 echo "Test geos on a sphere" >> ${OUT}
@@ -404,7 +470,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test geos on a sphere with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=y -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=x -E >>${OUT} <<EOF
 16d11'8" 58d35'31"
 -43d11'47" -22d54'30"
 18d25'26" -33d55'31"
@@ -412,7 +478,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test geos on a ellipsoid with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=y -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=x -E >>${OUT} <<EOF
 16d11'8" 58d35'31"
 -43d11'47" -22d54'30"
 18d25'26" -33d55'31"
@@ -420,7 +486,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test inv geos on a sphere with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=y -I -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=x -I -E >>${OUT} <<EOF
 841586.28 4961396.21
 -3772913.22 -2339604.71
 1601377.77 -3415545.15
@@ -428,7 +494,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test inv geos on a ellipsoid with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=y -I -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=x -I -E >>${OUT} <<EOF
 844731.03 4946509.59
 -3779077.27 -2327750.87
 1605067.15 -3400461.47
@@ -482,7 +548,7 @@ EOF
 echo "##############################################################" >> ${OUT}
 echo "Test laea" >> ${OUT}
 #
-$EXE -f '%.14f' \
+$EXE -f '%.12f' \
      +proj=laea +lat_0=45 +lon_0=-100 +units=m +datum=WGS84 +no_defs \
  +to +proj=latlong +datum=WGS84 \
  -E >>${OUT} <<EOF
@@ -502,7 +568,7 @@ $EXE +proj=calcofi +ellps=clrk66 \
  +to +proj=longlat +ellps=clrk66 \
  -E >>${OUT} <<EOF
 60 20
-80 60 
+80 60
 90 120
 EOF
 echo "##############################################################" >> ${OUT}
@@ -565,8 +631,58 @@ $EXE -f '%.3f' \
 163 -89.9
 163 -80
 EOF
+echo "##############################################################" >> ${OUT}
+echo "Test qsc" >> ${OUT}
+#
+$EXE -f '%.13f' \
+     +proj=latlong +datum=WGS84 \
+ +to +proj=qsc +datum=WGS84 +no_defs \
+ -E >>${OUT} <<EOF
+13 -10
+EOF
+$EXE -f '%.13f' \
+     +proj=qsc +datum=WGS84 +no_defs \
+ +to +proj=latlong +datum=WGS84 \
+ -E >>${OUT} <<EOF
+2073986.94908809568733	-1680858.27222427958623
+EOF
+echo "##############################################################" >> ${OUT}
+echo "Test bug 229" >> ${OUT}
+#
+$EXE -f '%.13f' \
+     +init=epsg:4326 +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0 \
+ +to +proj=latlong +datum=WGS84 +no_defs \
+ -E >>${OUT} <<EOF
+13 -10
+EOF
+echo "##############################################################" >> ${OUT}
+echo "Test bug 229 (2)" >> ${OUT}
+#
+$EXE -f '%.13f' \
+     +init=epsg:4326 +to +init=epsg:4326 \
+ -E >>${OUT} <<EOF
+13 -10
+EOF
+echo "##############################################################" >> ${OUT}
+echo "Test bug 244 " >> ${OUT}
+#
+$EXE -f '%.12f' \
+     +init=epsg:4326 \
+     +to +proj=aeqd +lon_0=130.0 +lat_0=40.0 +a=6378137 +b=6378137 +units=m +no_defs \
+ -E >>${OUT} <<EOF
+-140.100000 -87.000000
+EOF
+echo "##############################################################" >> ${OUT}
+echo "Test bug 244 (2)" >> ${OUT}
+#
+$EXE -f '%.12f' \
+     +proj=aeqd +lon_0=130.0 +lat_0=40.0 +a=6378137 +b=6378137 +units=m +no_defs \
+     +to +init=epsg:4326 \
+ -E >>${OUT} <<EOF
+987122.4183302754536 -14429896.5395309105515
+EOF
 ##############################################################################
-# Done! 
+# Done!
 # do 'diff' with distribution results
 echo "diff ${OUT} with ${OUT}.dist"
 diff -b ${OUT} ${OUT}.dist
diff --git a/nad/tv_out.dist b/nad/tv_out.dist
index d813731..31230bd 100644
--- a/nad/tv_out.dist
+++ b/nad/tv_out.dist
@@ -58,34 +58,34 @@ Test RSO Borneo projection (re: ticket 62)
 ##############################################################
 Test extended transverse mercator (#97)
 10000 20000	20dW	0dN 0.000
-500000 2000000	15d22'16.108"W	17d52'53.478"N 0.000  
-1000000 2000000	10d40'55.532"W	17d42'48.526"N 0.000  
-2000000 2000000	1d32'21.33"W	17d3'47.233"N 0.000  
-4000000 2000000	15d4'42.357"E	14d48'56.372"N 0.000  
+500000 2000000	15d22'16.108"W	17d52'53.478"N 0.000
+1000000 2000000	10d40'55.532"W	17d42'48.526"N 0.000
+2000000 2000000	1d32'21.33"W	17d3'47.233"N 0.000
+4000000 2000000	15d4'42.357"E	14d48'56.372"N 0.000
 ##############################################################
 Test extended transverse mercator inverse (#97)
 0dN 0.000	2278817.00	20000.00 0.00
-15d22'16.108"W	17d52'53.478"N 0.000	499999.99	2000000.01 0.00  
-10d40'55.532"W	17d42'48.526"N 0.000	999999.99	1999999.99 0.00  
-1d32'21.33"W	17d3'47.233"N 0.000	2000000.00	1999999.99 0.00  
-15d4'42.357"E	14d48'56.372"N 0.000	4000000.00	2000000.01 0.00  
+15d22'16.108"W	17d52'53.478"N 0.000	499999.99	2000000.01 0.00
+10d40'55.532"W	17d42'48.526"N 0.000	999999.99	1999999.99 0.00
+1d32'21.33"W	17d3'47.233"N 0.000	2000000.00	1999999.99 0.00
+15d4'42.357"E	14d48'56.372"N 0.000	4000000.00	2000000.01 0.00
 ##############################################################
 Test transverse mercator (#97)
 10000 20000	20dW	0dN 0.000
-500000 2000000	15d22'16.108"W	17d52'53.478"N 0.000  
-1000000 2000000	10d40'55.532"W	17d42'48.526"N 0.000  
-2000000 2000000	1d32'21.399"W	17d3'47.244"N 0.000  
-4000000 2000000	15d4'6.539"E	14d49'7.331"N 0.000  
+500000 2000000	15d22'16.108"W	17d52'53.478"N 0.000
+1000000 2000000	10d40'55.532"W	17d42'48.526"N 0.000
+2000000 2000000	1d32'21.399"W	17d3'47.244"N 0.000
+4000000 2000000	15d4'6.539"E	14d49'7.331"N 0.000
 ##############################################################
 Test transverse mercator inverse (#97)
 0dN 0.000	2278812.96	20000.00 0.00
-15d22'16.108"W	17d52'53.478"N 0.000	499999.99	2000000.01 0.00  
-10d40'55.532"W	17d42'48.526"N 0.000	999999.99	1999999.99 0.00  
-1d32'21.33"W	17d3'47.233"N 0.000	2000000.03	1999999.62 0.00  
-15d4'42.357"E	14d48'56.372"N 0.000	3999967.33	1999855.31 0.00  
+15d22'16.108"W	17d52'53.478"N 0.000	499999.99	2000000.01 0.00
+10d40'55.532"W	17d42'48.526"N 0.000	999999.99	1999999.99 0.00
+1d32'21.33"W	17d3'47.233"N 0.000	2000000.03	1999999.62 0.00
+15d4'42.357"E	14d48'56.372"N 0.000	3999967.33	1999855.31 0.00
 ##############################################################
 Test robinson projection (#113)
--30 40	-2612095.95	4276351.58 0.00 
+-30 40	-2612095.95	4276351.58 0.00
 -35 45	-2963455.42	4805073.65 0.00
 20 40	1741397.30	4276351.58 0.00
 -2612095.95     4276351.58 0.00	30d0'0.004"W	40d0'0.066"N 0.000
@@ -145,18 +145,59 @@ Test healpix inverse projection on ellipsoid
 0.0 3.351278550178025	0.00000	59.23640 0.00000
 0.0 -3.351278550178025	0.00000	-59.23640 0.00000
 ##############################################################
-Test forward projection on sphere
-0 41.81031	0.00000	0.78540 0.00000
--90 0	-1.57080	0.00000 0.00000
-Test inverse projection on sphere
-0 0.7853981633974483	0.00000	41.81031 0.00000
--1.5707963267948966 0	-90.00000	0.00000 0.00000
-Test forward projection on ellipsoid
-0 41.937853904844985	0.00000	0.78452 0.00000
--90 0	-1.56904	0.00000 0.00000
-Test inverse projection on ellipsoid
-0 0.7853981633974483	*	* 0.00000
--1.5707963267948966 0	-90.10072	0.00000 0.00000
+Test rHEALPix forward projection on sphere north=0 south=0
+-180 30.0	-15.70796	2.94524 0.00000
+-180 -25.714285714285715	-15.70796	-2.55579 0.00000
+0 0	0.00000	0.00000 0.00000
+60.0 41.809314895778598	5.23599	3.92691 0.00000
+##############################################################
+Test rHEALPix forward projection on sphere north=1 south=1
+-180 30.0	-15.70796	2.94524 0.00000
+-180 -25.714285714285715	-15.70796	-2.55579 0.00000
+0 0	0.00000	0.00000 0.00000
+60.0 41.809314895778598	5.23599	3.92691 0.00000
+##############################################################
+Test rHEALPix inverse projection on sphere north=0 south=0
+0.0 0.0	0.00000	0.00000 0.00000
+0.0 3.9269908169872414	0.00000	41.81031 0.00000
+0.0 -3.9269908169872414	0.00000	-41.81031 0.00000
+7.853981633974483 0.0	90.00000	0.00000 0.00000
+-7.853981633974483 0.0	-90.00000	0.00000 0.00000
+##############################################################
+Test rHEALPix inverse projection on sphere north=1 south=1
+0.0 0.0	0.00000	0.00000 0.00000
+0.0 3.9269908169872414	0.00000	41.81031 0.00000
+0.0 -3.9269908169872414	0.00000	-41.81031 0.00000
+7.853981633974483 0.0	90.00000	0.00000 0.00000
+-7.853981633974483 0.0	-90.00000	0.00000 0.00000
+##############################################################
+Test rHEALPix forward projection on ellipsoid north=0 south=0
+0 0	0.00000	0.00000 0.00000
+0 41.810314895778596	0.00000	2.05479 0.00000
+0 -41.810314895778596	0.00000	-2.05479 0.00000
+90.0 0	6.78898	0.00000 0.00000
+-90.0 0	-6.78898	0.00000 0.00000
+##############################################################
+Test rHEALPix forward projection on ellipsoid north=1 south=1
+0 0	0.00000	0.00000 0.00000
+0 41.810314895778596	0.00000	2.05479 0.00000
+0 -41.810314895778596	0.00000	-2.05479 0.00000
+90.0 0	6.78898	0.00000 0.00000
+-90.0 0	-6.78898	0.00000 0.00000
+##############################################################
+Test rHEALPix inverse projection on ellipsoid north=0 south=0
+0.0 0.0	0.00000	0.00000 0.00000
+0.0 2.0547874222147415	0.00000	39.58811 0.00000
+0.0 -2.0547874222147415	0.00000	-39.58811 0.00000
+6.788983564106746 0.0	90.00000	0.00000 0.00000
+-6.788983564106746 0.0	-90.00000	0.00000 0.00000
+##############################################################
+Test rHEALPix inverse projection on ellipsoid north=1 south=1
+0.0 0.0	0.00000	0.00000 0.00000
+0.0 2.0547874222147415	0.00000	39.58811 0.00000
+0.0 -2.0547874222147415	0.00000	-39.58811 0.00000
+6.788983564106746 0.0	90.00000	0.00000 0.00000
+-6.788983564106746 0.0	-90.00000	0.00000 0.00000
 ##############################################################
 Test geos projection
 Test geos on a sphere
@@ -232,7 +273,7 @@ Test pconic (#148)
 -2240096.40 -6940342.15	70d24'W	23d39'S 0.000
 ##############################################################
 Test laea
--6086629.0 4488761.0	156.05863798859943	37.76545829867844 0.00000000000000
+-6086629.0 4488761.0	156.058637988599	37.765458298678 0.000000000000
 ##############################################################
 Test forward calcofi projection
 120d40'42.273"W	38d56'50.766"N	60.00	20.00 0.00
@@ -240,7 +281,7 @@ Test forward calcofi projection
 123d59'56.066"W	30d25'4.617"N	90.00	120.00 0.00
 Test inverse calcofi projection
 60 20	120d40'42.273"W	38d56'50.766"N 0.000
-80 60	121d9'W	34d9'N 0.000 
+80 60	121d9'W	34d9'N 0.000
 90 120	123d59'56.066"W	30d25'4.617"N 0.000
 ##############################################################
 Check inverse error handling with ob_tran (#225)
@@ -267,3 +308,19 @@ Test omerc differences between poles (#190)
 -27 -89.9	-10033520.737	402158.063 0.000
 163 -89.9	-10055728.173	404099.799 0.000
 163 -80	-11163496.121	397796.828 0.000
+##############################################################
+Test qsc
+13 -10	2073986.9490880956873	-1680858.2722242795862 0.0000000000000
+2073986.94908809568733	-1680858.27222427958623	13.0000000000000	-10.0000000000000 0.0000000000000
+##############################################################
+Test bug 229
+13 -10	13.0000000000000	-10.0000000000000 0.0000000000000
+##############################################################
+Test bug 229 (2)
+13 -10	13.0000000000000	-10.0000000000000 0.0000000000000
+##############################################################
+Test bug 244 
+-140.100000 -87.000000	987122.418330275454	-14429896.539530910552 0.000000000000
+##############################################################
+Test bug 244 (2)
+987122.4183302754536 -14429896.5395309105515	-140.100000000000	-87.000000000000 0.000000000000
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..e9a36aa
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,25 @@
+# first include proj library
+# always need
+include(lib_proj.cmake)
+
+# configure executable build
+option(BUILD_CS2CS "Build cs2cs (coordinate systems to coordinate systems translation tool)" ON)
+option(BUILD_PROJ "Build proj (cartographic projection tool : latlong <-> projected coordinates" ON)
+option(BUILD_GEOD "Build geod (computation of geodesic lines)" ON)
+option(BUILD_NAD2BIN "Build nad2bin (format conversion tool) " ON)
+
+if(BUILD_CS2CS)
+ include(bin_cs2cs.cmake)
+endif(BUILD_CS2CS)
+
+if(BUILD_PROJ)
+  include(bin_proj.cmake)
+endif(BUILD_PROJ)
+
+if(BUILD_GEOD)
+  include(bin_geod.cmake)
+endif(BUILD_GEOD)
+
+if(BUILD_NAD2BIN)
+  include(bin_nad2bin.cmake)
+endif(BUILD_NAD2BIN)
diff --git a/src/Makefile.am b/src/Makefile.am
index 22c2902..d4f8e20 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,7 +1,7 @@
 AM_CFLAGS = @C_WFLAGS@
 
 bin_PROGRAMS =	proj nad2bin geod cs2cs
-EXTRA_PROGRAMS = multistresstest
+EXTRA_PROGRAMS = multistresstest test228
 
 INCLUDES =	-DPROJ_LIB=\"$(pkgdatadir)\" \
 		-DMUTEX_ at MUTEX_SETTING@ @JNI_INCLUDE@
@@ -9,19 +9,23 @@ INCLUDES =	-DPROJ_LIB=\"$(pkgdatadir)\" \
 include_HEADERS = proj_api.h projects.h geodesic.h \
 	org_proj4_Projections.h org_proj4_PJ.h
 
-EXTRA_DIST = makefile.vc proj.def
+EXTRA_DIST = makefile.vc proj.def bin_cs2cs.cmake \
+			 bin_geod.cmake bin_nad2bin.cmake bin_proj.cmake \
+			 lib_proj.cmake CMakeLists.txt
 
 proj_SOURCES = proj.c gen_cheb.c p_series.c
 cs2cs_SOURCES = cs2cs.c gen_cheb.c p_series.c
 nad2bin_SOURCES = nad2bin.c
 geod_SOURCES = geod.c geod_set.c geod_interface.c geod_interface.h
 multistresstest_SOURCES = multistresstest.c
+test228_SOURCES = test228.c
 
 proj_LDADD = libproj.la
 cs2cs_LDADD = libproj.la
 nad2bin_LDADD = libproj.la
 geod_LDADD = libproj.la
 multistresstest_LDADD = libproj.la -lpthread
+test228_LDADD = libproj.la -lpthread
 
 lib_LTLIBRARIES = libproj.la
 
@@ -49,7 +53,7 @@ libproj_la_SOURCES = \
 	PJ_gn_sinu.c PJ_goode.c PJ_igh.c PJ_hatano.c PJ_loxim.c \
 	PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c \
 	PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c \
-	PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c \
+	PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_qsc.c PJ_robin.c \
 	PJ_sts.c PJ_urm5.c PJ_urmfps.c PJ_wag2.c \
 	PJ_wag3.c PJ_wink1.c PJ_wink2.c pj_latlong.c pj_geocent.c \
 	aasincos.c adjlon.c bch2bps.c bchgen.c \
diff --git a/src/Makefile.in b/src/Makefile.in
index f220dbe..1a6897f 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -38,7 +38,7 @@ build_triplet = @build@
 host_triplet = @host@
 bin_PROGRAMS = proj$(EXEEXT) nad2bin$(EXEEXT) geod$(EXEEXT) \
 	cs2cs$(EXEEXT)
-EXTRA_PROGRAMS = multistresstest$(EXEEXT)
+EXTRA_PROGRAMS = multistresstest$(EXEEXT) test228$(EXEEXT)
 subdir = src
 DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/proj_config.h.in
@@ -74,6 +74,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
 	"$(DESTDIR)$(includedir)"
 LTLIBRARIES = $(lib_LTLIBRARIES)
@@ -95,11 +101,11 @@ am_libproj_la_OBJECTS = PJ_aeqd.lo PJ_gnom.lo PJ_laea.lo \
 	PJ_gstmerc.lo PJ_gn_sinu.lo PJ_goode.lo PJ_igh.lo PJ_hatano.lo \
 	PJ_loxim.lo PJ_mbt_fps.lo PJ_mbtfpp.lo PJ_mbtfpq.lo PJ_moll.lo \
 	PJ_nell.lo PJ_nell_h.lo PJ_putp2.lo PJ_putp3.lo PJ_putp4p.lo \
-	PJ_putp5.lo PJ_putp6.lo PJ_robin.lo PJ_sts.lo PJ_urm5.lo \
-	PJ_urmfps.lo PJ_wag2.lo PJ_wag3.lo PJ_wink1.lo PJ_wink2.lo \
-	pj_latlong.lo pj_geocent.lo aasincos.lo adjlon.lo bch2bps.lo \
-	bchgen.lo biveval.lo dmstor.lo mk_cheby.lo pj_auth.lo \
-	pj_deriv.lo pj_ell_set.lo pj_ellps.lo pj_errno.lo \
+	PJ_putp5.lo PJ_putp6.lo PJ_qsc.lo PJ_robin.lo PJ_sts.lo \
+	PJ_urm5.lo PJ_urmfps.lo PJ_wag2.lo PJ_wag3.lo PJ_wink1.lo \
+	PJ_wink2.lo pj_latlong.lo pj_geocent.lo aasincos.lo adjlon.lo \
+	bch2bps.lo bchgen.lo biveval.lo dmstor.lo mk_cheby.lo \
+	pj_auth.lo pj_deriv.lo pj_ell_set.lo pj_ellps.lo pj_errno.lo \
 	pj_factors.lo pj_fwd.lo pj_init.lo pj_inv.lo pj_list.lo \
 	pj_malloc.lo pj_mlfn.lo pj_msfn.lo proj_mdist.lo \
 	pj_open_lib.lo pj_param.lo pj_phi2.lo pj_pr_list.lo pj_qsfn.lo \
@@ -133,6 +139,9 @@ nad2bin_DEPENDENCIES = libproj.la
 am_proj_OBJECTS = proj.$(OBJEXT) gen_cheb.$(OBJEXT) p_series.$(OBJEXT)
 proj_OBJECTS = $(am_proj_OBJECTS)
 proj_DEPENDENCIES = libproj.la
+am_test228_OBJECTS = test228.$(OBJEXT)
+test228_OBJECTS = $(am_test228_OBJECTS)
+test228_DEPENDENCIES = libproj.la
 DEFAULT_INCLUDES = -I. at am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
@@ -147,9 +156,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
 SOURCES = $(libproj_la_SOURCES) $(cs2cs_SOURCES) $(geod_SOURCES) \
-	$(multistresstest_SOURCES) $(nad2bin_SOURCES) $(proj_SOURCES)
+	$(multistresstest_SOURCES) $(nad2bin_SOURCES) $(proj_SOURCES) \
+	$(test228_SOURCES)
 DIST_SOURCES = $(libproj_la_SOURCES) $(cs2cs_SOURCES) $(geod_SOURCES) \
-	$(multistresstest_SOURCES) $(nad2bin_SOURCES) $(proj_SOURCES)
+	$(multistresstest_SOURCES) $(nad2bin_SOURCES) $(proj_SOURCES) \
+	$(test228_SOURCES)
 HEADERS = $(include_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -278,17 +289,22 @@ INCLUDES = -DPROJ_LIB=\"$(pkgdatadir)\" \
 include_HEADERS = proj_api.h projects.h geodesic.h \
 	org_proj4_Projections.h org_proj4_PJ.h
 
-EXTRA_DIST = makefile.vc proj.def
+EXTRA_DIST = makefile.vc proj.def bin_cs2cs.cmake \
+			 bin_geod.cmake bin_nad2bin.cmake bin_proj.cmake \
+			 lib_proj.cmake CMakeLists.txt
+
 proj_SOURCES = proj.c gen_cheb.c p_series.c
 cs2cs_SOURCES = cs2cs.c gen_cheb.c p_series.c
 nad2bin_SOURCES = nad2bin.c
 geod_SOURCES = geod.c geod_set.c geod_interface.c geod_interface.h
 multistresstest_SOURCES = multistresstest.c
+test228_SOURCES = test228.c
 proj_LDADD = libproj.la
 cs2cs_LDADD = libproj.la
 nad2bin_LDADD = libproj.la
 geod_LDADD = libproj.la
 multistresstest_LDADD = libproj.la -lpthread
+test228_LDADD = libproj.la -lpthread
 lib_LTLIBRARIES = libproj.la
 libproj_la_LDFLAGS = -no-undefined -version-info 8:0:8
 libproj_la_SOURCES = \
@@ -313,7 +329,7 @@ libproj_la_SOURCES = \
 	PJ_gn_sinu.c PJ_goode.c PJ_igh.c PJ_hatano.c PJ_loxim.c \
 	PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c \
 	PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c \
-	PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_robin.c \
+	PJ_putp4p.c PJ_putp5.c PJ_putp6.c PJ_qsc.c PJ_robin.c \
 	PJ_sts.c PJ_urm5.c PJ_urmfps.c PJ_wag2.c \
 	PJ_wag3.c PJ_wink1.c PJ_wink2.c pj_latlong.c pj_geocent.c \
 	aasincos.c adjlon.c bch2bps.c bchgen.c \
@@ -369,10 +385,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 proj_config.h: stamp-h1
-	@if test ! -f $@; then \
-	  rm -f stamp-h1; \
-	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-	else :; fi
+	@if test ! -f $@; then rm -f stamp-h1; else :; fi
+	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/proj_config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
@@ -415,7 +429,7 @@ clean-libLTLIBRARIES:
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-libproj.la: $(libproj_la_OBJECTS) $(libproj_la_DEPENDENCIES) 
+libproj.la: $(libproj_la_OBJECTS) $(libproj_la_DEPENDENCIES) $(EXTRA_libproj_la_DEPENDENCIES) 
 	$(libproj_la_LINK) -rpath $(libdir) $(libproj_la_OBJECTS) $(libproj_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
@@ -460,21 +474,24 @@ clean-binPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
-cs2cs$(EXEEXT): $(cs2cs_OBJECTS) $(cs2cs_DEPENDENCIES) 
+cs2cs$(EXEEXT): $(cs2cs_OBJECTS) $(cs2cs_DEPENDENCIES) $(EXTRA_cs2cs_DEPENDENCIES) 
 	@rm -f cs2cs$(EXEEXT)
 	$(LINK) $(cs2cs_OBJECTS) $(cs2cs_LDADD) $(LIBS)
-geod$(EXEEXT): $(geod_OBJECTS) $(geod_DEPENDENCIES) 
+geod$(EXEEXT): $(geod_OBJECTS) $(geod_DEPENDENCIES) $(EXTRA_geod_DEPENDENCIES) 
 	@rm -f geod$(EXEEXT)
 	$(LINK) $(geod_OBJECTS) $(geod_LDADD) $(LIBS)
-multistresstest$(EXEEXT): $(multistresstest_OBJECTS) $(multistresstest_DEPENDENCIES) 
+multistresstest$(EXEEXT): $(multistresstest_OBJECTS) $(multistresstest_DEPENDENCIES) $(EXTRA_multistresstest_DEPENDENCIES) 
 	@rm -f multistresstest$(EXEEXT)
 	$(LINK) $(multistresstest_OBJECTS) $(multistresstest_LDADD) $(LIBS)
-nad2bin$(EXEEXT): $(nad2bin_OBJECTS) $(nad2bin_DEPENDENCIES) 
+nad2bin$(EXEEXT): $(nad2bin_OBJECTS) $(nad2bin_DEPENDENCIES) $(EXTRA_nad2bin_DEPENDENCIES) 
 	@rm -f nad2bin$(EXEEXT)
 	$(LINK) $(nad2bin_OBJECTS) $(nad2bin_LDADD) $(LIBS)
-proj$(EXEEXT): $(proj_OBJECTS) $(proj_DEPENDENCIES) 
+proj$(EXEEXT): $(proj_OBJECTS) $(proj_DEPENDENCIES) $(EXTRA_proj_DEPENDENCIES) 
 	@rm -f proj$(EXEEXT)
 	$(LINK) $(proj_OBJECTS) $(proj_LDADD) $(LIBS)
+test228$(EXEEXT): $(test228_OBJECTS) $(test228_DEPENDENCIES) $(EXTRA_test228_DEPENDENCIES) 
+	@rm -f test228$(EXEEXT)
+	$(LINK) $(test228_OBJECTS) $(test228_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -555,6 +572,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_putp4p.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_putp5.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_putp6.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_qsc.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_robin.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_rpoly.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PJ_sconics.Plo at am__quote@
@@ -644,6 +662,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/proj_mdist.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/proj_rouss.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/rtodms.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/test228.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/vector1.Plo at am__quote@
 
 .c.o:
@@ -689,9 +708,7 @@ uninstall-includeHEADERS:
 	@$(NORMAL_UNINSTALL)
 	@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-	test -n "$$files" || exit 0; \
-	echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(includedir)" && rm -f $$files
+	dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -794,10 +811,15 @@ install-am: all-am
 
 installcheck: installcheck-am
 install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
 mostlyclean-generic:
 
 clean-generic:
diff --git a/src/PJ_aeqd.c b/src/PJ_aeqd.c
index 6ff2871..0da1ea2 100644
--- a/src/PJ_aeqd.c
+++ b/src/PJ_aeqd.c
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: PJ_aeqd.c 1856 2010-06-11 03:26:04Z warmerdam $
+ * $Id: PJ_aeqd.c 2520 2014-09-13 20:19:37Z hobu $
  *
  * Project:  PROJ.4
  * Purpose:  Implementation of the aeqd (Azimuthal Equidistant) projection.
@@ -40,7 +40,7 @@
 #define PJ_LIB__
 #include	<projects.h>
 
-PJ_CVSID("$Id: PJ_aeqd.c 1856 2010-06-11 03:26:04Z warmerdam $");
+PJ_CVSID("$Id: PJ_aeqd.c 2520 2014-09-13 20:19:37Z hobu $");
 
 PROJ_HEAD(aeqd, "Azimuthal Equidistant") "\n\tAzi, Sph&Ell\n\tlat_0 guam";
 
@@ -210,7 +210,7 @@ INVERSE(s_inverse); /* spherical */
 			xy.y = (cosc - P->sinph0 * sin(lp.phi)) * c_rh;
 			xy.x *= sinc * P->cosph0;
 		}
-		lp.lam = xy.y == 0. ? 0. : atan2(xy.x, xy.y);
+		lp.lam = atan2(xy.x, xy.y);
 	} else if (P->mode == N_POLE) {
 		lp.phi = HALFPI - c_rh;
 		lp.lam = atan2(xy.x, -xy.y);
diff --git a/src/PJ_geos.c b/src/PJ_geos.c
index 53f2f27..76fa1d9 100644
--- a/src/PJ_geos.c
+++ b/src/PJ_geos.c
@@ -5,7 +5,7 @@
 ** Copyright (c) 2012   Martin Raspaud
 */
 static const char
-LIBPROJ_ID[] = "$Id: PJ_geos.c 2176 2012-02-27 07:56:32Z warmerdam $";
+LIBPROJ_ID[] = "$Id: PJ_geos.c 2411 2013-12-09 18:13:15Z warmerdam $";
 /*
 ** See also (section 4.4.3.2):
 **   http://www.eumetsat.int/en/area4/msg/news/us_doc/cgms_03_26.pdf
@@ -170,7 +170,7 @@ ENTRY0(geos)
                 (P->sweep_axis[0] != 'x' &&
                  P->sweep_axis[0] != 'y'))
               E_ERROR(-49);
-            if (P->sweep_axis[0] == 'y')
+            if (P->sweep_axis[0] == 'x')
               P->flip_axis = 1;
             else
               P->flip_axis = 0;
diff --git a/src/PJ_omerc.c b/src/PJ_omerc.c
index 969fd1d..310d774 100644
--- a/src/PJ_omerc.c
+++ b/src/PJ_omerc.c
@@ -112,6 +112,12 @@ ENTRY0(omerc)
                     pj_param(P->ctx, P->params, "tno_off").i
                     /* for backward compatibility */
                     || pj_param(P->ctx, P->params, "tno_uoff").i;
+        if( no_off )
+        {
+            /* Mark the parameter as used, so that the pj_get_def() return them */
+            pj_param(P->ctx, P->params, "sno_uoff");
+            pj_param(P->ctx, P->params, "sno_off");
+        }
 	} else {
 		lam1 = pj_param(P->ctx, P->params, "rlon_1").f;
 		phi1 = pj_param(P->ctx, P->params, "rlat_1").f;
diff --git a/src/PJ_qsc.c b/src/PJ_qsc.c
new file mode 100644
index 0000000..1c7a443
--- /dev/null
+++ b/src/PJ_qsc.c
@@ -0,0 +1,375 @@
+/*
+ * This implements the Quadrilateralized Spherical Cube (QSC) projection.
+ *
+ * Copyright (c) 2011, 2012  Martin Lambers <marlam at marlam.de>
+ *
+ * The QSC projection was introduced in:
+ * [OL76]
+ * E.M. O'Neill and R.E. Laubscher, "Extended Studies of a Quadrilateralized
+ * Spherical Cube Earth Data Base", Naval Environmental Prediction Research
+ * Facility Tech. Report NEPRF 3-76 (CSC), May 1976.
+ *
+ * The preceding shift from an ellipsoid to a sphere, which allows to apply
+ * this projection to ellipsoids as used in the Ellipsoidal Cube Map model,
+ * is described in
+ * [LK12]
+ * M. Lambers and A. Kolb, "Ellipsoidal Cube Maps for Accurate Rendering of
+ * Planetary-Scale Terrain Data", Proc. Pacfic Graphics (Short Papers), Sep.
+ * 2012
+ *
+ * You have to choose one of the following projection centers,
+ * corresponding to the centers of the six cube faces:
+ * phi0 = 0.0, lam0 = 0.0       ("front" face)
+ * phi0 = 0.0, lam0 = 90.0      ("right" face)
+ * phi0 = 0.0, lam0 = 180.0     ("back" face)
+ * phi0 = 0.0, lam0 = -90.0     ("left" face)
+ * phi0 = 90.0                  ("top" face)
+ * phi0 = -90.0                 ("bottom" face)
+ * Other projection centers will not work!
+ *
+ * In the projection code below, each cube face is handled differently.
+ * See the computation of the face parameter in the ENTRY0(qsc) function
+ * and the handling of different face values (FACE_*) in the forward and
+ * inverse projections.
+ *
+ * Furthermore, the projection is originally only defined for theta angles
+ * between (-1/4 * PI) and (+1/4 * PI) on the current cube face. This area
+ * of definition is named AREA_0 in the projection code below. The other
+ * three areas of a cube face are handled by rotation of AREA_0.
+ */
+
+#define PROJ_PARMS__ \
+        int face; \
+        double a_squared; \
+        double b; \
+        double one_minus_f; \
+        double one_minus_f_squared;
+#define PJ_LIB__
+#include        <projects.h>
+PROJ_HEAD(qsc, "Quadrilateralized Spherical Cube") "\n\tAzi, Sph.";
+#define EPS10 1.e-10
+
+/* The six cube faces. */
+#define FACE_FRONT  0
+#define FACE_RIGHT  1
+#define FACE_BACK   2
+#define FACE_LEFT   3
+#define FACE_TOP    4
+#define FACE_BOTTOM 5
+
+/* The four areas on a cube face. AREA_0 is the area of definition,
+ * the other three areas are counted counterclockwise. */
+#define AREA_0 0
+#define AREA_1 1
+#define AREA_2 2
+#define AREA_3 3
+
+/* Helper function for forward projection: compute the theta angle
+ * and determine the area number. */
+static double
+qsc_fwd_equat_face_theta(double phi, double y, double x, int *area) {
+        double theta;
+        if (phi < EPS10) {
+            *area = AREA_0;
+            theta = 0.0;
+        } else {
+            theta = atan2(y, x);
+            if (fabs(theta) <= FORTPI) {
+                *area = AREA_0;
+            } else if (theta > FORTPI && theta <= HALFPI + FORTPI) {
+                *area = AREA_1;
+                theta -= HALFPI;
+            } else if (theta > HALFPI + FORTPI || theta <= -(HALFPI + FORTPI)) {
+                *area = AREA_2;
+                theta = (theta >= 0.0 ? theta - PI : theta + PI);
+            } else {
+                *area = AREA_3;
+                theta += HALFPI;
+            }
+        }
+        return (theta);
+}
+
+/* Helper function: shift the longitude. */
+static double
+qsc_shift_lon_origin(double lon, double offset) {
+        double slon = lon + offset;
+        if (slon < -PI) {
+            slon += TWOPI;
+        } else if (slon > +PI) {
+            slon -= TWOPI;
+        }
+        return slon;
+}
+
+/* Forward projection, ellipsoid */
+FORWARD(e_forward);
+        double lat, lon;
+        double sinlat, coslat;
+        double sinlon, coslon;
+        double q, r, s;
+        double theta, phi;
+        double t, mu, nu;
+        int area;
+
+        /* Convert the geodetic latitude to a geocentric latitude.
+         * This corresponds to the shift from the ellipsoid to the sphere
+         * described in [LK12]. */
+        if (P->es) {
+            lat = atan(P->one_minus_f_squared * tan(lp.phi));
+        } else {
+            lat = lp.phi;
+        }
+
+        /* Convert the input lat, lon into theta, phi as used by QSC.
+         * This depends on the cube face and the area on it.
+         * For the top and bottom face, we can compute theta and phi
+         * directly from phi, lam. For the other faces, we must use
+         * unit sphere cartesian coordinates as an intermediate step. */
+        lon = lp.lam;
+        if (P->face != FACE_TOP && P->face != FACE_BOTTOM) {
+            if (P->face == FACE_RIGHT) {
+                lon = qsc_shift_lon_origin(lon, +HALFPI);
+            } else if (P->face == FACE_BACK) {
+                lon = qsc_shift_lon_origin(lon, +PI);
+            } else if (P->face == FACE_LEFT) {
+                lon = qsc_shift_lon_origin(lon, -HALFPI);
+            }
+            sinlat = sin(lat);
+            coslat = cos(lat);
+            sinlon = sin(lon);
+            coslon = cos(lon);
+            q = coslat * coslon;
+            r = coslat * sinlon;
+            s = sinlat;
+        }
+        if (P->face == FACE_FRONT) {
+            phi = acos(q);
+            theta = qsc_fwd_equat_face_theta(phi, s, r, &area);
+        } else if (P->face == FACE_RIGHT) {
+            phi = acos(r);
+            theta = qsc_fwd_equat_face_theta(phi, s, -q, &area);
+        } else if (P->face == FACE_BACK) {
+            phi = acos(-q);
+            theta = qsc_fwd_equat_face_theta(phi, s, -r, &area);
+        } else if (P->face == FACE_LEFT) {
+            phi = acos(-r);
+            theta = qsc_fwd_equat_face_theta(phi, s, q, &area);
+        } else if (P->face == FACE_TOP) {
+            phi = HALFPI - lat;
+            if (lon >= FORTPI && lon <= HALFPI + FORTPI) {
+                area = AREA_0;
+                theta = lon - HALFPI;
+            } else if (lon > HALFPI + FORTPI || lon <= -(HALFPI + FORTPI)) {
+                area = AREA_1;
+                theta = (lon > 0.0 ? lon - PI : lon + PI);
+            } else if (lon > -(HALFPI + FORTPI) && lon <= -FORTPI) {
+                area = AREA_2;
+                theta = lon + HALFPI;
+            } else {
+                area = AREA_3;
+                theta = lon;
+            }
+        } else /* P->face == FACE_BOTTOM */ {
+            phi = HALFPI + lat;
+            if (lon >= FORTPI && lon <= HALFPI + FORTPI) {
+                area = AREA_0;
+                theta = -lon + HALFPI;
+            } else if (lon < FORTPI && lon >= -FORTPI) {
+                area = AREA_1;
+                theta = -lon;
+            } else if (lon < -FORTPI && lon >= -(HALFPI + FORTPI)) {
+                area = AREA_2;
+                theta = -lon - HALFPI;
+            } else {
+                area = AREA_3;
+                theta = (lon > 0.0 ? -lon + PI : -lon - PI);
+            }
+        }
+
+        /* Compute mu and nu for the area of definition.
+         * For mu, see Eq. (3-21) in [OL76], but note the typos:
+         * compare with Eq. (3-14). For nu, see Eq. (3-38). */
+        mu = atan((12.0 / PI) * (theta + acos(sin(theta) * cos(FORTPI)) - HALFPI));
+        t = sqrt((1.0 - cos(phi)) / (cos(mu) * cos(mu)) / (1.0 - cos(atan(1.0 / cos(theta)))));
+        /* nu = atan(t);        We don't really need nu, just t, see below. */
+
+        /* Apply the result to the real area. */
+        if (area == AREA_1) {
+            mu += HALFPI;
+        } else if (area == AREA_2) {
+            mu += PI;
+        } else if (area == AREA_3) {
+            mu += HALFPI + PI;
+        }
+
+        /* Now compute x, y from mu and nu */
+        /* t = tan(nu); */
+        xy.x = t * cos(mu);
+        xy.y = t * sin(mu);
+        return (xy);
+}
+
+/* Inverse projection, ellipsoid */
+INVERSE(e_inverse);
+        double mu, nu, cosmu, tannu;
+        double tantheta, theta, cosphi, phi;
+        double t;
+        int area;
+
+        /* Convert the input x, y to the mu and nu angles as used by QSC.
+         * This depends on the area of the cube face. */
+        nu = atan(sqrt(xy.x * xy.x + xy.y * xy.y));
+        mu = atan2(xy.y, xy.x);
+        if (xy.x >= 0.0 && xy.x >= fabs(xy.y)) {
+            area = AREA_0;
+        } else if (xy.y >= 0.0 && xy.y >= fabs(xy.x)) {
+            area = AREA_1;
+            mu -= HALFPI;
+        } else if (xy.x < 0.0 && -xy.x >= fabs(xy.y)) {
+            area = AREA_2;
+            mu = (mu < 0.0 ? mu + PI : mu - PI);
+        } else {
+            area = AREA_3;
+            mu += HALFPI;
+        }
+
+        /* Compute phi and theta for the area of definition.
+         * The inverse projection is not described in the original paper, but some
+         * good hints can be found here (as of 2011-12-14):
+         * http://fits.gsfc.nasa.gov/fitsbits/saf.93/saf.9302
+         * (search for "Message-Id: <9302181759.AA25477 at fits.cv.nrao.edu>") */
+        t = (PI / 12.0) * tan(mu);
+        tantheta = sin(t) / (cos(t) - (1.0 / sqrt(2.0)));
+        theta = atan(tantheta);
+        cosmu = cos(mu);
+        tannu = tan(nu);
+        cosphi = 1.0 - cosmu * cosmu * tannu * tannu * (1.0 - cos(atan(1.0 / cos(theta))));
+        if (cosphi < -1.0) {
+            cosphi = -1.0;
+        } else if (cosphi > +1.0) {
+            cosphi = +1.0;
+        }
+
+        /* Apply the result to the real area on the cube face.
+         * For the top and bottom face, we can compute phi and lam directly.
+         * For the other faces, we must use unit sphere cartesian coordinates
+         * as an intermediate step. */
+        if (P->face == FACE_TOP) {
+            phi = acos(cosphi);
+            lp.phi = HALFPI - phi;
+            if (area == AREA_0) {
+                lp.lam = theta + HALFPI;
+            } else if (area == AREA_1) {
+                lp.lam = (theta < 0.0 ? theta + PI : theta - PI);
+            } else if (area == AREA_2) {
+                lp.lam = theta - HALFPI;
+            } else /* area == AREA_3 */ {
+                lp.lam = theta;
+            }
+        } else if (P->face == FACE_BOTTOM) {
+            phi = acos(cosphi);
+            lp.phi = phi - HALFPI;
+            if (area == AREA_0) {
+                lp.lam = -theta + HALFPI;
+            } else if (area == AREA_1) {
+                lp.lam = -theta;
+            } else if (area == AREA_2) {
+                lp.lam = -theta - HALFPI;
+            } else /* area == AREA_3 */ {
+                lp.lam = (theta < 0.0 ? -theta - PI : -theta + PI);
+            }
+        } else {
+            /* Compute phi and lam via cartesian unit sphere coordinates. */
+            double q, r, s, t;
+            q = cosphi;
+            t = q * q;
+            if (t >= 1.0) {
+                s = 0.0;
+            } else {
+                s = sqrt(1.0 - t) * sin(theta);
+            }
+            t += s * s;
+            if (t >= 1.0) {
+                r = 0.0;
+            } else {
+                r = sqrt(1.0 - t);
+            }
+            /* Rotate q,r,s into the correct area. */
+            if (area == AREA_1) {
+                t = r;
+                r = -s;
+                s = t;
+            } else if (area == AREA_2) {
+                r = -r;
+                s = -s;
+            } else if (area == AREA_3) {
+                t = r;
+                r = s;
+                s = -t;
+            }
+            /* Rotate q,r,s into the correct cube face. */
+            if (P->face == FACE_RIGHT) {
+                t = q;
+                q = -r;
+                r = t;
+            } else if (P->face == FACE_BACK) {
+                q = -q;
+                r = -r;
+            } else if (P->face == FACE_LEFT) {
+                t = q;
+                q = r;
+                r = -t;
+            }
+            /* Now compute phi and lam from the unit sphere coordinates. */
+            lp.phi = acos(-s) - HALFPI;
+            lp.lam = atan2(r, q);
+            if (P->face == FACE_RIGHT) {
+                lp.lam = qsc_shift_lon_origin(lp.lam, -HALFPI);
+            } else if (P->face == FACE_BACK) {
+                lp.lam = qsc_shift_lon_origin(lp.lam, -PI);
+            } else if (P->face == FACE_LEFT) {
+                lp.lam = qsc_shift_lon_origin(lp.lam, +HALFPI);
+            }
+        }
+
+        /* Apply the shift from the sphere to the ellipsoid as described
+         * in [LK12]. */
+        if (P->es) {
+            int invert_sign;
+            double tanphi, xa;
+            invert_sign = (lp.phi < 0.0 ? 1 : 0);
+            tanphi = tan(lp.phi);
+            xa = P->b / sqrt(tanphi * tanphi + P->one_minus_f_squared);
+            lp.phi = atan(sqrt(P->a * P->a - xa * xa) / (P->one_minus_f * xa));
+            if (invert_sign) {
+                lp.phi = -lp.phi;
+            }
+        }
+        return (lp);
+}
+FREEUP; if (P) pj_dalloc(P); }
+ENTRY0(qsc)
+        P->inv = e_inverse;
+        P->fwd = e_forward;
+        /* Determine the cube face from the center of projection. */
+        if (P->phi0 >= HALFPI - FORTPI / 2.0) {
+            P->face = FACE_TOP;
+        } else if (P->phi0 <= -(HALFPI - FORTPI / 2.0)) {
+            P->face = FACE_BOTTOM;
+        } else if (fabs(P->lam0) <= FORTPI) {
+            P->face = FACE_FRONT;
+        } else if (fabs(P->lam0) <= HALFPI + FORTPI) {
+            P->face = (P->lam0 > 0.0 ? FACE_RIGHT : FACE_LEFT);
+        } else {
+            P->face = FACE_BACK;
+        }
+        /* Fill in useful values for the ellipsoid <-> sphere shift
+         * described in [LK12]. */
+        if (P->es) {
+            P->a_squared = P->a * P->a;
+            P->b = P->a * sqrt(1.0 - P->es);
+            P->one_minus_f = 1.0 - (P->a - P->b) / P->a;
+            P->one_minus_f_squared = P->one_minus_f * P->one_minus_f;
+        }
+ENDENTRY(P)
diff --git a/src/bin_cs2cs.cmake b/src/bin_cs2cs.cmake
new file mode 100644
index 0000000..00f177a
--- /dev/null
+++ b/src/bin_cs2cs.cmake
@@ -0,0 +1,14 @@
+set(CS2CS_SRC cs2cs.c 
+              gen_cheb.c 
+              p_series.c)
+
+source_group("Source Files\\Bin" FILES ${CS2CS_SRC})
+
+if(WIN32)
+    set(CS2CS_SRC ${CS2CS_SRC} emess.c)
+endif(WIN32)
+
+add_executable(cs2cs ${CS2CS_SRC} ${CS2CS_INCLUDE})
+target_link_libraries(cs2cs proj m)
+install(TARGETS cs2cs 
+        RUNTIME DESTINATION ${BINDIR})
diff --git a/src/bin_geod.cmake b/src/bin_geod.cmake
new file mode 100644
index 0000000..d06f4dd
--- /dev/null
+++ b/src/bin_geod.cmake
@@ -0,0 +1,16 @@
+set(GEOD_SRC geod.c
+             geodesic.c geod_set.c geod_interface.c )
+set(GEOD_INCLUDE  geodesic.h geod_interface.h)
+
+source_group("Source Files\\Bin" FILES ${GEOD_SRC} ${GEOD_INCLUDE})
+
+if(WIN32)
+    set(GEOD_SRC ${GEOD_SRC} emess.c)
+endif(WIN32)
+
+#Executable
+add_executable(geod ${GEOD_SRC} ${GEOD_INCLUDE})
+target_link_libraries(geod ${PROJ_LIBRARIES})
+install(TARGETS geod
+        RUNTIME DESTINATION ${BINDIR})
+
diff --git a/src/bin_nad2bin.cmake b/src/bin_nad2bin.cmake
new file mode 100644
index 0000000..9f62f6c
--- /dev/null
+++ b/src/bin_nad2bin.cmake
@@ -0,0 +1,17 @@
+if(WIN32 AND NOT BUILD_LIBPROJ_SHARED)
+    message(warning " nad2nad can't be build with a DLL proj4 library you need a static lib")
+endif(WIN32 AND NOT BUILD_LIBPROJ_SHARED)
+
+
+set(NAD2BIN_SRC nad2bin.c)
+source_group("Source Files\\Bin" FILES ${NAD2BIN_SRC})
+if(WIN32)
+    set(NAD2BIN_SRC ${NAD2BIN_SRC} ${NAD2BIN_SRC}/emess.c)
+endif(WIN32)
+    
+#Executable
+add_executable(nad2bin ${NAD2BIN_SRC})
+target_link_libraries(nad2bin ${PROJ_LIBRARIES})
+install(TARGETS nad2bin 
+        RUNTIME DESTINATION ${BINDIR})
+
diff --git a/src/bin_proj.cmake b/src/bin_proj.cmake
new file mode 100644
index 0000000..f20d2f3
--- /dev/null
+++ b/src/bin_proj.cmake
@@ -0,0 +1,19 @@
+set(PROJ_SRC proj.c 
+             gen_cheb.c 
+             p_series.c)
+
+source_group("Source Files\\Bin" FILES ${PROJ_SRC})
+
+if(WIN32)
+    set(PROJ_SRC ${PROJ_SRC} emess.c)
+endif(WIN32)
+    
+#Executable
+add_executable(binproj ${PROJ_SRC})
+set_target_properties(binproj
+    PROPERTIES
+    OUTPUT_NAME proj)
+target_link_libraries(binproj ${PROJ_LIBRARIES})
+install(TARGETS binproj 
+        RUNTIME DESTINATION ${BINDIR})
+
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake
new file mode 100644
index 0000000..0973c8c
--- /dev/null
+++ b/src/lib_proj.cmake
@@ -0,0 +1,313 @@
+##############################################
+### SWITCH BETWEEN STATIC OR SHARED LIBRARY###
+##############################################
+colormsg(_HIBLUE_ "Configuring proj library:")
+message(STATUS "")
+
+# default config, shared on unix and static on Windows
+if(UNIX)
+    set(BUILD_LIBPROJ_SHARED_DEFAULT ON )
+endif(UNIX)
+if( WIN32)
+    set(BUILD_LIBPROJ_SHARED_DEFAULT OFF)
+endif(WIN32)
+option(BUILD_LIBPROJ_SHARED "Build libproj library shared." ${BUILD_LIBPROJ_SHARED_DEFAULT})
+if(BUILD_LIBPROJ_SHARED)
+  set(PROJ_LIBRARY_TYPE SHARED)
+else(BUILD_LIBPROJ_SHARED)
+  set(PROJ_LIBRARY_TYPE STATIC)
+endif(BUILD_LIBPROJ_SHARED)
+
+
+option(USE_THREAD "Build libproj with thread/mutex support " ON)
+if(NOT USE_THREAD)
+   add_definitions( -DMUTEX_stub)
+endif(NOT USE_THREAD)
+find_package(Threads QUIET)
+if(Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT )
+   add_definitions( -DMUTEX_win32)
+endif(Threads_FOUND AND CMAKE_USE_WIN32_THREADS_INIT )
+if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT )
+   add_definitions( -DMUTEX_pthread)
+endif(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT )
+if(USE_THREAD AND NOT Threads_FOUND)
+  message(FATAL_ERROR "No thread library found and thread/mutex support is required by USE_THREAD option")
+endif(USE_THREAD AND NOT Threads_FOUND)
+
+
+##############################################
+### librairie source list and include_list ###
+##############################################
+SET(SRC_LIBPROJ_PJ
+        nad_init.c
+        PJ_aea.c
+        PJ_aeqd.c
+        PJ_airy.c
+        PJ_aitoff.c
+        PJ_august.c
+        PJ_bacon.c
+        PJ_bipc.c
+        PJ_boggs.c
+        PJ_bonne.c
+        PJ_calcofi.c
+        PJ_cass.c
+        PJ_cc.c
+        PJ_cea.c
+        PJ_chamb.c
+        PJ_collg.c
+        PJ_crast.c
+        PJ_denoy.c
+        PJ_eck1.c
+        PJ_eck2.c
+        PJ_eck3.c
+        PJ_eck4.c
+        PJ_eck5.c
+        PJ_eqc.c
+        PJ_eqdc.c
+        PJ_fahey.c
+        PJ_fouc_s.c
+        PJ_gall.c
+        PJ_geos.c
+        PJ_gins8.c
+        PJ_gnom.c
+        PJ_gn_sinu.c
+        PJ_goode.c
+        PJ_gstmerc.c
+        PJ_hammer.c
+        PJ_hatano.c
+        PJ_igh.c
+        PJ_isea.c
+        PJ_imw_p.c
+        PJ_krovak.c
+        PJ_labrd.c
+        PJ_laea.c
+        PJ_lagrng.c
+        PJ_larr.c
+        PJ_lask.c
+        PJ_lcca.c
+        PJ_lcc.c
+        PJ_loxim.c
+        PJ_lsat.c
+        PJ_mbt_fps.c
+        PJ_mbtfpp.c
+        PJ_mbtfpq.c
+        PJ_merc.c
+        PJ_mill.c
+        PJ_mod_ster.c
+        PJ_moll.c
+        PJ_natearth.c
+        PJ_nell.c
+        PJ_nell_h.c
+        PJ_nocol.c
+        PJ_nsper.c
+        PJ_nzmg.c
+        PJ_ob_tran.c
+        PJ_ocea.c
+        PJ_oea.c
+        PJ_omerc.c
+        PJ_ortho.c
+        PJ_poly.c
+        PJ_putp2.c
+        PJ_putp3.c
+        PJ_putp4p.c
+        PJ_putp5.c
+        PJ_putp6.c
+        PJ_qsc.c
+        PJ_robin.c
+        PJ_rpoly.c
+        PJ_sconics.c
+        PJ_somerc.c
+        PJ_sterea.c
+        PJ_stere.c
+        PJ_sts.c
+        PJ_tcc.c
+        PJ_tcea.c
+        PJ_tmerc.c
+        PJ_tpeqd.c
+        PJ_urm5.c
+        PJ_urmfps.c
+        PJ_vandg.c
+        PJ_vandg2.c
+        PJ_vandg4.c
+        PJ_wag2.c
+        PJ_wag3.c
+        PJ_wag7.c
+        PJ_wink1.c
+        PJ_wink2.c
+        proj_etmerc.c
+)
+
+SET(SRC_LIBPROJ_CORE
+        aasincos.c
+        adjlon.c
+        bch2bps.c
+        bchgen.c
+        biveval.c
+        dmstor.c
+        emess.c
+        geocent.c
+        geocent.h
+        mk_cheby.c
+        nad_cvt.c
+        nad_init.c
+        nad_intr.c
+        pj_apply_gridshift.c
+        pj_apply_vgridshift.c
+        pj_auth.c
+        pj_ctx.c
+        pj_fileapi.c
+        pj_datum_set.c
+        pj_datums.c
+        pj_deriv.c
+        pj_ell_set.c
+        pj_ellps.c
+        pj_errno.c
+        pj_factors.c
+        pj_fwd.c
+        pj_gauss.c
+        pj_gc_reader.c
+        pj_geocent.c
+        pj_gridcatalog.c
+        pj_gridinfo.c
+        pj_gridlist.c
+        pj_healpix.c
+        pj_init.c
+        pj_initcache.c
+        pj_inv.c
+        pj_latlong.c
+        pj_list.c
+        pj_log.c
+        pj_malloc.c
+        pj_mlfn.c
+        pj_msfn.c
+        pj_mutex.c
+        pj_open_lib.c
+        pj_param.c
+        pj_phi2.c
+        pj_pr_list.c
+        pj_qsfn.c
+        pj_release.c
+        pj_strerrno.c
+        pj_transform.c
+        pj_tsfn.c
+        pj_units.c
+        pj_utils.c
+        pj_zpoly1.c
+        proj_mdist.c
+        proj_rouss.c
+        rtodms.c
+        vector1.c
+ )
+
+set(HEADERS_LIBPROJ
+        pj_list.h
+        emess.h
+        projects.h
+        proj_api.h
+ )
+
+# Group source files for IDE source explorers (e.g. Visual Studio)
+source_group("Header Files" FILES ${HEADERS_LIBPROJ})
+source_group("Source Files\\Core" FILES ${SRC_LIBPROJ_CORE})
+source_group("Source Files\\PJ" FILES ${SRC_LIBPROJ_PJ})
+source_group("CMake Files" FILES CMakeLists.txt)
+
+#################################################
+## java wrapping with jni
+#################################################
+option(JNI_SUPPORT "Build support of java/jni wrapping for proj library" OFF)
+find_package(JNI QUIET)
+if(JNI_SUPPORT AND NOT JNI_FOUND)
+  message(FATAL_ERROR "jni support is required but jni is not found")
+endif(JNI_SUPPORT AND NOT JNI_FOUND)
+boost_report_value(JNI_SUPPORT)
+if(JNI_SUPPORT)
+  set(SRC_LIBPROJ_CORE ${SRC_LIBPROJ_CORE}
+                       jniproj.c )
+  set(HEADERS_LIBPROJ ${HEADERS_LIBPROJ}
+                        org_proj4_PJ.h
+                        org_proj4_Projections.h)
+  source_group("Source Files\\JNI" FILES ${SRC_LIBPROJ_JNI})
+  add_definitions(-DJNI_ENABLED)
+  include_directories( ${JNI_INCLUDE_DIRS})
+  boost_report_value(JNI_INCLUDE_DIRS)
+endif(JNI_SUPPORT)
+
+#################################################
+## targets: libproj and proj_config.h
+#################################################
+set(ALL_LIBPROJ_SOURCES ${SRC_LIBPROJ_PJ} ${SRC_LIBPROJ_CORE})
+set(ALL_LIBPROJ_HEADERS ${HEADERS_LIBPROJ} )
+if(WIN32 AND BUILD_LIBPROJ_SHARED)
+    set(ALL_LIBPROJ_SOURCES ${ALL_LIBPROJ_SOURCES} proj.def )
+endif(WIN32 AND BUILD_LIBPROJ_SHARED)
+
+# Core targets configuration
+string(TOLOWER "${PROJECT_INTERN_NAME}" PROJECTNAMEL)
+set(PROJ_CORE_TARGET ${PROJECTNAMEL})
+proj_target_output_name(${PROJ_CORE_TARGET} PROJ_CORE_TARGET_OUTPUT_NAME)
+
+add_library( ${PROJ_CORE_TARGET}
+                    ${PROJ_LIBRARY_TYPE}
+                    ${ALL_LIBPROJ_SOURCES}
+                    ${ALL_LIBPROJ_HEADERS}
+                    ${PROJ_RESOURCES}  )
+
+
+if(WIN32)
+  set_target_properties(${PROJ_CORE_TARGET}
+    PROPERTIES
+    OUTPUT_NAME "${PROJ_CORE_TARGET_OUTPUT_NAME}"
+    VERSION  ${ ${PROJECT_INTERN_NAME}_VERSION }
+    CLEAN_DIRECT_OUTPUT 1)
+elseif(BUILD_FRAMEWORKS_AND_BUNDLE)
+  set_target_properties(${PROJ_CORE_TARGET}
+    PROPERTIES
+    INSTALL_NAME_DIR ${PROJ_INSTALL_NAME_DIR}
+    CLEAN_DIRECT_OUTPUT 1)
+else()
+  set_target_properties(${PROJ_CORE_TARGET}
+    PROPERTIES
+    VERSION "${${PROJECT_INTERN_NAME}_VERSION}"
+    SOVERSION "${${PROJECT_INTERN_NAME}_SOVERSION}"
+    CLEAN_DIRECT_OUTPUT 1)
+endif()
+
+set_target_properties(${PROJ_CORE_TARGET}
+    PROPERTIES
+    LINKER_LANGUAGE C)
+add_dependencies(${PROJ_CORE_TARGET} proj_config.h)
+
+##############################################
+# Link properties
+##############################################
+set(PROJ_LIBRARIES ${PROJ_CORE_TARGET} )
+if(UNIX AND BUILD_LIBPROJ_SHARED)
+    set(PROJ_LIBRARIES ${PROJ_LIBRARIES} m)
+endif(UNIX AND BUILD_LIBPROJ_SHARED)
+
+##############################################
+# install
+##############################################
+install(TARGETS ${PROJ_CORE_TARGET}
+        RUNTIME DESTINATION ${BINDIR}
+        LIBRARY DESTINATION ${LIBDIR}
+        ARCHIVE DESTINATION ${LIBDIR}
+        FRAMEWORK DESTINATION ${FRAMEWORKDIR})
+
+if(NOT BUILD_FRAMEWORKS_AND_BUNDLE)
+  install(FILES ${ALL_LIBPROJ_HEADERS}
+        DESTINATION ${INCLUDEDIR})
+endif(NOT BUILD_FRAMEWORKS_AND_BUNDLE)
+
+##############################################
+# Core configuration summary
+##############################################
+boost_report_value(PROJ_CORE_TARGET)
+boost_report_value(PROJ_CORE_TARGET_OUTPUT_NAME)
+boost_report_value(PROJ_LIBRARY_TYPE)
+boost_report_value(PROJ_LIBRARIES)
+
+
+
+
diff --git a/src/makefile.vc b/src/makefile.vc
index 2aca35c..7f17f0d 100644
--- a/src/makefile.vc
+++ b/src/makefile.vc
@@ -1,4 +1,4 @@
-# $Id: makefile.vc 2396 2013-10-20 18:57:28Z warmerdam $
+# $Id: makefile.vc 2409 2013-12-06 03:12:39Z warmerdam $
 #
 # makefile.vc - builds PROJ.4 library with Visual C++
 #
@@ -27,7 +27,7 @@ misc = \
 	PJ_lask.obj PJ_nocol.obj PJ_ob_tran.obj PJ_oea.obj \
 	PJ_tpeqd.obj PJ_vandg.obj PJ_vandg2.obj PJ_vandg4.obj \
 	PJ_wag7.obj pj_latlong.obj PJ_krovak.obj pj_geocent.obj \
-	PJ_healpix.obj PJ_natearth.obj
+	PJ_healpix.obj PJ_natearth.obj PJ_qsc.obj
 
 pseudo = \
 	PJ_boggs.obj PJ_collg.obj PJ_crast.obj PJ_denoy.obj \
diff --git a/src/multistresstest.c b/src/multistresstest.c
index a77faf7..8ad35e3 100644
--- a/src/multistresstest.c
+++ b/src/multistresstest.c
@@ -278,6 +278,7 @@ static void *PosixTestThread( void *pData )
 
 {
     TestThread();
+    return NULL;
 }
 #endif
 
@@ -364,7 +365,7 @@ int main( int argc, char **argv )
 	}
 
 #else
-
+    {
 	pthread_t ahThread[num_threads];
 	pthread_attr_t hThreadAttr;
 
@@ -376,14 +377,14 @@ int main( int argc, char **argv )
 		active_thread_count++;
 
 		pthread_create( &(ahThread[i]), &hThreadAttr, 
-			TestThread, NULL );
+			PosixTestThread, NULL );
 	}
 
 	printf( "%d test threads launched.\n", num_threads );
 
 	while( active_thread_count > 0 )				       
 		sleep( 1 );
-
+    }
 #endif
 
     printf( "all tests complete.\n" );
diff --git a/src/pj_datums.c b/src/pj_datums.c
index 4330fce..64ab66e 100644
--- a/src/pj_datums.c
+++ b/src/pj_datums.c
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_datums.c 2398 2013-10-21 18:50:53Z warmerdam $
+ * $Id: pj_datums.c 2524 2014-09-13 21:22:54Z warmerdam $
  *
  * Project:  PROJ.4
  * Purpose:  Built in datum list.
@@ -49,7 +49,7 @@ C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[] = {
                                                      "clrk66", 
 				"North_American_Datum_1927",
 "potsdam",  "towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7",  "bessel",  "Potsdam Rauenberg 1950 DHDN",
-"carthage",  "towgs84=-263.0,6.0,431.0",  "clark80",  "Carthage 1934 Tunisia",
+"carthage",  "towgs84=-263.0,6.0,431.0",  "clrk80",  "Carthage 1934 Tunisia",
 "hermannskogel", "towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232",  "bessel",  "Hermannskogel",
 "ire65",  "towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",  "mod_airy",  "Ireland 1965",
 "nzgd49",    "towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993", "intl", "New Zealand Geodetic Datum 1949",
diff --git a/src/pj_gridinfo.c b/src/pj_gridinfo.c
index dd5748a..0c36227 100644
--- a/src/pj_gridinfo.c
+++ b/src/pj_gridinfo.c
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_gridinfo.c 2345 2013-06-22 07:54:57Z warmerdam $
+ * $Id: pj_gridinfo.c 2512 2014-09-13 19:13:06Z hobu $
  *
  * Project:  PROJ.4
  * Purpose:  Functions for handling individual PJ_GRIDINFO's.  Includes
@@ -62,16 +62,16 @@ static void swap_words( unsigned char *data, int word_size, int word_count )
     for( word = 0; word < word_count; word++ )
     {
         int	i;
-        
+
         for( i = 0; i < word_size/2; i++ )
         {
             int	t;
-            
+
             t = data[i];
             data[i] = data[word_size-i-1];
             data[word_size-i-1] = t;
         }
-        
+
         data += word_size;
     }
 }
@@ -99,7 +99,7 @@ void pj_gridinfo_free( projCtx ctx, PJ_GRIDINFO *gi )
 
     if( gi->ct != NULL )
         nad_free( gi->ct );
-    
+
     free( gi->gridname );
     if( gi->filename != NULL )
         free( gi->filename );
@@ -118,9 +118,20 @@ void pj_gridinfo_free( projCtx ctx, PJ_GRIDINFO *gi )
 int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
 
 {
+    struct CTABLE ct_tmp;
+
     if( gi == NULL || gi->ct == NULL )
         return 0;
 
+    pj_acquire_lock();
+    if( gi->ct->cvs != NULL )
+    {
+        pj_release_lock();
+        return 1;
+    }
+
+    memcpy(&ct_tmp, gi->ct, sizeof(struct CTABLE));
+
 /* -------------------------------------------------------------------- */
 /*      Original platform specific CTable format.                       */
 /* -------------------------------------------------------------------- */
@@ -130,17 +141,21 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
         int result;
 
         fid = pj_open_lib( ctx, gi->filename, "rb" );
-        
+
         if( fid == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
 
-        result = nad_ctable_load( ctx, gi->ct, fid );
+        result = nad_ctable_load( ctx, &ct_tmp, fid );
 
         pj_ctx_fclose( ctx, fid );
 
+        gi->ct->cvs = ct_tmp.cvs;
+        pj_release_lock();
+
         return result;
     }
 
@@ -153,17 +168,21 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
         int result;
 
         fid = pj_open_lib( ctx, gi->filename, "rb" );
-        
+
         if( fid == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
 
-        result = nad_ctable2_load( ctx, gi->ct, fid );
+        result = nad_ctable2_load( ctx, &ct_tmp, fid );
 
         pj_ctx_fclose( ctx, fid );
 
+        gi->ct->cvs = ct_tmp.cvs;
+
+        pj_release_lock();
         return result;
     }
 
@@ -181,35 +200,37 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
         PAFile fid;
 
         fid = pj_open_lib( ctx, gi->filename, "rb" );
-        
+
         if( fid == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
 
         pj_ctx_fseek( ctx, fid, gi->grid_offset, SEEK_SET );
 
         row_buf = (double *) pj_malloc(gi->ct->lim.lam * sizeof(double) * 2);
-        gi->ct->cvs = (FLP *) pj_malloc(gi->ct->lim.lam*gi->ct->lim.phi*sizeof(FLP));
-        if( row_buf == NULL || gi->ct->cvs == NULL )
+        ct_tmp.cvs = (FLP *) pj_malloc(gi->ct->lim.lam*gi->ct->lim.phi*sizeof(FLP));
+        if( row_buf == NULL || ct_tmp.cvs == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
-        
+
         for( row = 0; row < gi->ct->lim.phi; row++ )
         {
             int	    i;
             FLP     *cvs;
             double  *diff_seconds;
 
-            if( pj_ctx_fread( ctx, row_buf, 
-                              sizeof(double), gi->ct->lim.lam * 2, fid ) 
+            if( pj_ctx_fread( ctx, row_buf,
+                              sizeof(double), gi->ct->lim.lam * 2, fid )
                 != 2 * gi->ct->lim.lam )
             {
                 pj_dalloc( row_buf );
-                pj_dalloc( gi->ct->cvs );
+                pj_dalloc( ct_tmp.cvs );
                 pj_ctx_set_errno( ctx, -38 );
                 return 0;
             }
@@ -222,7 +243,7 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
 
             for( i = 0; i < gi->ct->lim.lam; i++ )
             {
-                cvs = gi->ct->cvs + (row) * gi->ct->lim.lam
+                cvs = ct_tmp.cvs + (row) * gi->ct->lim.lam
                     + (gi->ct->lim.lam - i - 1);
 
                 cvs->phi = *(diff_seconds++) * ((PI/180.0) / 3600.0);
@@ -234,6 +255,9 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
 
         pj_ctx_fclose( ctx, fid );
 
+        gi->ct->cvs = ct_tmp.cvs;
+        pj_release_lock();
+
         return 1;
     }
 
@@ -250,46 +274,48 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
         int	row;
         PAFile fid;
 
-        pj_log( ctx, PJ_LOG_DEBUG_MINOR, 
+        pj_log( ctx, PJ_LOG_DEBUG_MINOR,
                 "NTv2 - loading grid %s", gi->ct->id );
 
         fid = pj_open_lib( ctx, gi->filename, "rb" );
-        
+
         if( fid == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
 
         pj_ctx_fseek( ctx, fid, gi->grid_offset, SEEK_SET );
 
         row_buf = (float *) pj_malloc(gi->ct->lim.lam * sizeof(float) * 4);
-        gi->ct->cvs = (FLP *) pj_malloc(gi->ct->lim.lam*gi->ct->lim.phi*sizeof(FLP));
-        if( row_buf == NULL || gi->ct->cvs == NULL )
+        ct_tmp.cvs = (FLP *) pj_malloc(gi->ct->lim.lam*gi->ct->lim.phi*sizeof(FLP));
+        if( row_buf == NULL || ct_tmp.cvs == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
-        
+
         for( row = 0; row < gi->ct->lim.phi; row++ )
         {
             int	    i;
             FLP     *cvs;
             float   *diff_seconds;
 
-            if( pj_ctx_fread( ctx, row_buf, sizeof(float), 
-                              gi->ct->lim.lam*4, fid ) 
+            if( pj_ctx_fread( ctx, row_buf, sizeof(float),
+                              gi->ct->lim.lam*4, fid )
                 != 4 * gi->ct->lim.lam )
             {
                 pj_dalloc( row_buf );
-                pj_dalloc( gi->ct->cvs );
-                gi->ct->cvs = NULL;
+                pj_dalloc( ct_tmp.cvs );
                 pj_ctx_set_errno( ctx, -38 );
+                pj_release_lock();
                 return 0;
             }
 
             if( !IS_LSB )
-                swap_words( (unsigned char *) row_buf, 4, 
+                swap_words( (unsigned char *) row_buf, 4,
                             gi->ct->lim.lam*4 );
 
             /* convert seconds to radians */
@@ -297,7 +323,7 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
 
             for( i = 0; i < gi->ct->lim.lam; i++ )
             {
-                cvs = gi->ct->cvs + (row) * gi->ct->lim.lam
+                cvs = ct_tmp.cvs + (row) * gi->ct->lim.lam
                     + (gi->ct->lim.lam - i - 1);
 
                 cvs->phi = *(diff_seconds++) * ((PI/180.0) / 3600.0);
@@ -307,9 +333,12 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
         }
 
         pj_dalloc( row_buf );
-        
+
         pj_ctx_fclose( ctx, fid );
 
+        gi->ct->cvs = ct_tmp.cvs;
+
+        pj_release_lock();
         return 1;
     }
 
@@ -322,39 +351,44 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi )
         PAFile fid;
 
         fid = pj_open_lib( ctx, gi->filename, "rb" );
-        
+
         if( fid == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
 
         pj_ctx_fseek( ctx, fid, gi->grid_offset, SEEK_SET );
 
-        gi->ct->cvs = (FLP *) pj_malloc(words*sizeof(float));
-        if( gi->ct->cvs == NULL )
+        ct_tmp.cvs = (FLP *) pj_malloc(words*sizeof(float));
+        if( ct_tmp.cvs == NULL )
         {
             pj_ctx_set_errno( ctx, -38 );
+            pj_release_lock();
             return 0;
         }
-        
-        if( pj_ctx_fread( ctx, gi->ct->cvs, sizeof(float), words, fid ) 
+
+        if( pj_ctx_fread( ctx, ct_tmp.cvs, sizeof(float), words, fid )
             != words )
         {
-            pj_dalloc( gi->ct->cvs );
-            gi->ct->cvs = NULL;
+            pj_dalloc( ct_tmp.cvs );
+            pj_release_lock();
             return 0;
         }
 
         if( IS_LSB )
-            swap_words( (unsigned char *) gi->ct->cvs, 4, words );
+            swap_words( (unsigned char *) ct_tmp.cvs, 4, words );
 
         pj_ctx_fclose( ctx, fid );
+        gi->ct->cvs = ct_tmp.cvs;
+        pj_release_lock();
         return 1;
     }
 
     else
     {
+        pj_release_lock();
         return 0;
     }
 }
@@ -433,7 +467,7 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
             pj_ctx_set_errno( ctx, -38 );
             return 0;
         }
-        
+
 /* -------------------------------------------------------------------- */
 /*      Byte swap interesting fields if needed.                         */
 /* -------------------------------------------------------------------- */
@@ -447,7 +481,7 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
             swap_words( header+8+16*9, 8, 1 );
             swap_words( header+8+16*10, 4, 1 );
         }
-        
+
 /* -------------------------------------------------------------------- */
 /*      Initialize a corresponding "ct" structure.                      */
 /* -------------------------------------------------------------------- */
@@ -469,11 +503,11 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
 
         pj_log( ctx, PJ_LOG_DEBUG_MINOR,
                 "NTv2 %s %dx%d: LL=(%.9g,%.9g) UR=(%.9g,%.9g)\n",
-                ct->id, 
+                ct->id,
                 ct->lim.lam, ct->lim.phi,
                 ct->ll.lam/3600.0, ct->ll.phi/3600.0,
                 ur.lam/3600.0, ur.phi/3600.0 );
-        
+
         ct->ll.lam *= DEG_TO_RAD/3600.0;
         ct->ll.phi *= DEG_TO_RAD/3600.0;
         ct->del.lam *= DEG_TO_RAD/3600.0;
@@ -484,7 +518,7 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
         {
             pj_log( ctx, PJ_LOG_ERROR,
                     "GS_COUNT(%d) does not match expected cells (%dx%d=%d)\n",
-                    gs_count, ct->lim.lam, ct->lim.phi, 
+                    gs_count, ct->lim.lam, ct->lim.phi,
                     ct->lim.lam * ct->lim.phi );
             pj_ctx_set_errno( ctx, -38 );
             return 0;
@@ -502,7 +536,7 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
         {
             gi = (PJ_GRIDINFO *) pj_malloc(sizeof(PJ_GRIDINFO));
             memset( gi, 0, sizeof(PJ_GRIDINFO) );
-    
+
             gi->gridname = strdup( gilist->gridname );
             gi->filename = strdup( gilist->filename );
             gi->next = NULL;
@@ -530,8 +564,8 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
         {
             PJ_GRIDINFO *lnk;
             PJ_GRIDINFO *gp = gilist;
-            
-            while( gp != NULL 
+
+            while( gp != NULL
                    && strncmp(gp->ct->id,(const char*)header+24,8) != 0 )
                 gp = gp->next;
 
@@ -539,7 +573,7 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist )
             {
                 pj_log( ctx, PJ_LOG_ERROR,
                         "pj_gridinfo_init_ntv2(): "
-                        "failed to find parent %8.8s for %s.\n", 
+                        "failed to find parent %8.8s for %s.\n",
                         (const char *) header+24, gi->ct->id );
 
                 for( lnk = gp; lnk->next != NULL; lnk = lnk->next ) {}
@@ -577,7 +611,7 @@ static int pj_gridinfo_init_ntv1( projCtx ctx, PAFile fid, PJ_GRIDINFO *gi )
     unsigned char header[176];
     struct CTABLE *ct;
     LP		ur;
-    
+
     assert( sizeof(int) == 4 );
     assert( sizeof(double) == 8 );
     if( sizeof(int) != 4 || sizeof(double) != 8 )
@@ -613,7 +647,7 @@ static int pj_gridinfo_init_ntv1( projCtx ctx, PAFile fid, PJ_GRIDINFO *gi )
 
     if( *((int *) (header+8)) != 12 )
     {
-        pj_log( ctx, PJ_LOG_ERROR, 
+        pj_log( ctx, PJ_LOG_ERROR,
                 "NTv1 grid shift file has wrong record count, corrupt?" );
         pj_ctx_set_errno( ctx, -38 );
         return 0;
@@ -702,10 +736,10 @@ static int pj_gridinfo_init_gtx( projCtx ctx, PAFile fid, PJ_GRIDINFO *gi )
     memcpy( &rows, header+32, 4 );
     memcpy( &columns, header+36, 4 );
 
-    if( xorigin < -360 || xorigin > 360 
+    if( xorigin < -360 || xorigin > 360
         || yorigin < -90 || yorigin > 90 )
     {
-        pj_log( ctx, PJ_LOG_ERROR, 
+        pj_log( ctx, PJ_LOG_ERROR,
                 "gtx file header has invalid extents, corrupt?");
         pj_ctx_set_errno( ctx, -38 );
         return 0;
@@ -725,7 +759,7 @@ static int pj_gridinfo_init_gtx( projCtx ctx, PAFile fid, PJ_GRIDINFO *gi )
     ct->lim.phi = rows;
 
     /* some GTX files come in 0-360 and we shift them back into the
-       expected -180 to 180 range if possible.  This does not solve 
+       expected -180 to 180 range if possible.  This does not solve
        problems with grids spanning the dateline. */
     if( ct->ll.lam >= 180.0 )
         ct->ll.lam -= 360.0;
@@ -739,9 +773,9 @@ static int pj_gridinfo_init_gtx( projCtx ctx, PAFile fid, PJ_GRIDINFO *gi )
     pj_log( ctx, PJ_LOG_DEBUG_MINOR,
             "GTX %dx%d: LL=(%.9g,%.9g) UR=(%.9g,%.9g)",
             ct->lim.lam, ct->lim.phi,
-            ct->ll.lam, ct->ll.phi, 
+            ct->ll.lam, ct->ll.phi,
             ct->ll.lam + (columns-1)*xstep, ct->ll.phi + (rows-1)*ystep);
-    
+
     ct->ll.lam *= DEG_TO_RAD;
     ct->ll.phi *= DEG_TO_RAD;
     ct->del.lam *= DEG_TO_RAD;
@@ -781,7 +815,7 @@ PJ_GRIDINFO *pj_gridinfo_init( projCtx ctx, const char *gridname )
 /* -------------------------------------------------------------------- */
     gilist = (PJ_GRIDINFO *) pj_malloc(sizeof(PJ_GRIDINFO));
     memset( gilist, 0, sizeof(PJ_GRIDINFO) );
-    
+
     gilist->gridname = strdup( gridname );
     gilist->filename = NULL;
     gilist->format = "missing";
@@ -799,7 +833,7 @@ PJ_GRIDINFO *pj_gridinfo_init( projCtx ctx, const char *gridname )
     }
 
     gilist->filename = strdup(fname);
-    
+
 /* -------------------------------------------------------------------- */
 /*      Load a header, to determine the file type.                      */
 /* -------------------------------------------------------------------- */
@@ -815,21 +849,21 @@ PJ_GRIDINFO *pj_gridinfo_init( projCtx ctx, const char *gridname )
 /* -------------------------------------------------------------------- */
 /*      Determine file type.                                            */
 /* -------------------------------------------------------------------- */
-    if( strncmp(header + 0, "HEADER", 6) == 0 
-        && strncmp(header + 96, "W GRID", 6) == 0 
+    if( strncmp(header + 0, "HEADER", 6) == 0
+        && strncmp(header + 96, "W GRID", 6) == 0
         && strncmp(header + 144, "TO      NAD83   ", 16) == 0 )
     {
         pj_gridinfo_init_ntv1( ctx, fp, gilist );
     }
-    
-    else if( strncmp(header + 0, "NUM_OREC", 8) == 0 
+
+    else if( strncmp(header + 0, "NUM_OREC", 8) == 0
              && strncmp(header + 48, "GS_TYPE", 7) == 0 )
     {
         pj_gridinfo_init_ntv2( ctx, fp, gilist );
     }
 
-    else if( strlen(gridname) > 4 
-             && (strcmp(gridname+strlen(gridname)-3,"gtx") == 0 
+    else if( strlen(gridname) > 4
+             && (strcmp(gridname+strlen(gridname)-3,"gtx") == 0
                  || strcmp(gridname+strlen(gridname)-3,"GTX") == 0) )
     {
         pj_gridinfo_init_gtx( ctx, fp, gilist );
@@ -842,29 +876,35 @@ PJ_GRIDINFO *pj_gridinfo_init( projCtx ctx, const char *gridname )
         gilist->format = "ctable2";
         gilist->ct = ct;
 
-        pj_log( ctx, PJ_LOG_DEBUG_MAJOR, 
+        pj_log( ctx, PJ_LOG_DEBUG_MAJOR,
                 "Ctable2 %s %dx%d: LL=(%.9g,%.9g) UR=(%.9g,%.9g)\n",
-                ct->id, 
+                ct->id,
                 ct->lim.lam, ct->lim.phi,
                 ct->ll.lam * RAD_TO_DEG, ct->ll.phi * RAD_TO_DEG,
-                (ct->ll.lam + (ct->lim.lam-1)*ct->del.lam) * RAD_TO_DEG, 
+                (ct->ll.lam + (ct->lim.lam-1)*ct->del.lam) * RAD_TO_DEG,
                 (ct->ll.phi + (ct->lim.phi-1)*ct->del.phi) * RAD_TO_DEG );
     }
 
     else
     {
         struct CTABLE *ct = nad_ctable_init( ctx, fp );
-
-        gilist->format = "ctable";
-        gilist->ct = ct;
-
-        pj_log( ctx, PJ_LOG_DEBUG_MAJOR, 
-                "Ctable %s %dx%d: LL=(%.9g,%.9g) UR=(%.9g,%.9g)\n",
-                ct->id, 
-                ct->lim.lam, ct->lim.phi,
-                ct->ll.lam * RAD_TO_DEG, ct->ll.phi * RAD_TO_DEG,
-                (ct->ll.lam + (ct->lim.lam-1)*ct->del.lam) * RAD_TO_DEG, 
-                (ct->ll.phi + (ct->lim.phi-1)*ct->del.phi) * RAD_TO_DEG );
+        if (ct == NULL)
+        {
+            pj_log( ctx, PJ_LOG_DEBUG_MAJOR,
+                    "CTABLE ct is NULL.");
+        } else
+        {
+            gilist->format = "ctable";
+            gilist->ct = ct;
+
+            pj_log( ctx, PJ_LOG_DEBUG_MAJOR,
+                    "Ctable %s %dx%d: LL=(%.9g,%.9g) UR=(%.9g,%.9g)\n",
+                    ct->id,
+                    ct->lim.lam, ct->lim.phi,
+                    ct->ll.lam * RAD_TO_DEG, ct->ll.phi * RAD_TO_DEG,
+                    (ct->ll.lam + (ct->lim.lam-1)*ct->del.lam) * RAD_TO_DEG,
+                    (ct->ll.phi + (ct->lim.phi-1)*ct->del.phi) * RAD_TO_DEG );
+        }
     }
 
     pj_ctx_fclose(ctx, fp);
diff --git a/src/pj_init.c b/src/pj_init.c
index 4a152a8..c238af3 100644
--- a/src/pj_init.c
+++ b/src/pj_init.c
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id: pj_init.c 2393 2013-10-20 18:20:24Z warmerdam $
+ * $Id: pj_init.c 2482 2014-08-18 22:43:04Z hobu $
  *
  * Project:  PROJ.4
  * Purpose:  Initialize projection object from string definition.  Includes
@@ -37,7 +37,7 @@
 #include <locale.h>
 #include <ctype.h>
 
-PJ_CVSID("$Id: pj_init.c 2393 2013-10-20 18:20:24Z warmerdam $");
+PJ_CVSID("$Id: pj_init.c 2482 2014-08-18 22:43:04Z hobu $");
 
 typedef struct {
     projCtx ctx;
@@ -97,7 +97,8 @@ static const char *fill_buffer(pj_read_state *state, const char *last_char)
 /*                              get_opt()                               */
 /************************************************************************/
 static paralist *
-get_opt(projCtx ctx, paralist **start, PAFile fid, char *name, paralist *next) {
+get_opt(projCtx ctx, paralist **start, PAFile fid, char *name, paralist *next,
+        int *found_def) {
     pj_read_state *state = (pj_read_state*) calloc(1,sizeof(pj_read_state));
     char sword[302];
     int len;
@@ -107,6 +108,8 @@ get_opt(projCtx ctx, paralist **start, PAFile fid, char *name, paralist *next) {
     state->fid = fid;
     state->ctx = ctx;
     next_char = fill_buffer(state, NULL);
+    if(found_def)
+        *found_def = 0;
 
     len = strlen(name);
     *sword = 't';
@@ -150,6 +153,8 @@ get_opt(projCtx ctx, paralist **start, PAFile fid, char *name, paralist *next) {
                 /* skip past target word */
                 next_char += len + 1;
                 in_target = 1;
+                if(found_def)
+                    *found_def = 1;
             }
             else 
             {
@@ -221,9 +226,9 @@ get_defaults(projCtx ctx, paralist **start, paralist *next, char *name) {
     PAFile fid;
 
     if ( (fid = pj_open_lib(ctx,"proj_def.dat", "rt")) != NULL) {
-        next = get_opt(ctx, start, fid, "general", next);
+        next = get_opt(ctx, start, fid, "general", next, NULL);
         pj_ctx_fseek(ctx, fid, 0, SEEK_SET);
-        next = get_opt(ctx, start, fid, name, next);
+        next = get_opt(ctx, start, fid, name, next, NULL);
         pj_ctx_fclose(ctx, fid);
     }
     if (errno)
@@ -237,7 +242,8 @@ get_defaults(projCtx ctx, paralist **start, paralist *next, char *name) {
 /*                              get_init()                              */
 /************************************************************************/
 static paralist *
-get_init(projCtx ctx, paralist **start, paralist *next, char *name) {
+get_init(projCtx ctx, paralist **start, paralist *next, char *name,
+         int *found_def) {
     char fname[MAX_PATH_FILENAME+ID_TAG_MAX+3], *opt;
     PAFile fid;
     paralist *init_items = NULL;
@@ -255,6 +261,7 @@ get_init(projCtx ctx, paralist **start, paralist *next, char *name) {
         next->next = init_items;
         while( next->next != NULL )
             next = next->next;
+        *found_def = 1;
         return next;
     }
 
@@ -266,7 +273,7 @@ get_init(projCtx ctx, paralist **start, paralist *next, char *name) {
     else { pj_ctx_set_errno(ctx,-3); return NULL; }
 
     if ( (fid = pj_open_lib(ctx,fname, "rt")) != NULL)
-        next = get_opt(ctx, start, fid, opt, next);
+        next = get_opt(ctx, start, fid, opt, next, found_def);
     else
         return NULL;
     pj_ctx_fclose(ctx, fid);
@@ -416,10 +423,13 @@ pj_init_ctx(projCtx ctx, int argc, char **argv) {
     /* check if +init present */
     if (pj_param(ctx, start, "tinit").i) {
         paralist *last = curr;
+        int found_def = 0;
 
-        if (!(curr = get_init(ctx,&start, curr, pj_param(ctx, start, "sinit").s)))
+        if (!(curr = get_init(ctx,&start, curr,
+                              pj_param(ctx, start, "sinit").s,
+                              &found_def)))
             goto bum_call;
-        if (curr == last) { pj_ctx_set_errno( ctx, -2); goto bum_call; }
+        if (!found_def) { pj_ctx_set_errno( ctx, -2); goto bum_call; }
     }
 
     /* find projection selection */
diff --git a/src/pj_list.h b/src/pj_list.h
index 9595375..194bcc6 100644
--- a/src/pj_list.h
+++ b/src/pj_list.h
@@ -107,6 +107,7 @@ PROJ_HEAD(putp5p, "Putnins P5'")
 PROJ_HEAD(putp6, "Putnins P6")
 PROJ_HEAD(putp6p, "Putnins P6'")
 PROJ_HEAD(qua_aut, "Quartic Authalic")
+PROJ_HEAD(qsc, "Quadrilateralized Spherical Cube")
 PROJ_HEAD(robin, "Robinson")
 PROJ_HEAD(rouss, "Roussilhe Stereographic")
 PROJ_HEAD(rpoly, "Rectangular Polyconic")
diff --git a/src/pj_release.c b/src/pj_release.c
index 1f041e5..c1d4f69 100644
--- a/src/pj_release.c
+++ b/src/pj_release.c
@@ -2,7 +2,7 @@
 
 #include <projects.h>
 
-char const pj_release[]="Rel. 4.9.0, 27 October 2013";
+char const pj_release[]="Rel. 4.9.0, 13 September 2014";
 
 const char *pj_get_release()
 
diff --git a/src/test228.c b/src/test228.c
new file mode 100644
index 0000000..464c573
--- /dev/null
+++ b/src/test228.c
@@ -0,0 +1,70 @@
+#include <proj_api.h>
+
+#ifdef _WIN32
+
+int main(int argc, char* argv[])
+{
+    printf("Test not yet ported on Win32\n");
+    return 0;
+}
+
+#else
+
+#include <pthread.h>
+#include <stdio.h>
+#include <assert.h>
+#include <unistd.h>
+
+volatile int go_on = 1;
+
+void* thread_main(void* unused)
+{
+    projCtx p_proj_ctxt;
+    projPJ p_WGS84_proj;
+    projPJ p_OSGB36_proj;
+    
+    p_proj_ctxt=pj_ctx_alloc();
+    p_WGS84_proj=pj_init_plus_ctx(p_proj_ctxt,"+proj=longlat "
+            "+ellps=WGS84 +datum=WGS84 +no_defs");
+    p_OSGB36_proj=pj_init_plus_ctx(p_proj_ctxt,
+            "+proj=longlat +ellps=airy +datum=OSGB36 +nadgrids=OSTN02_NTv2.gsb "
+            "+no_defs");
+    
+    while(go_on)
+    {
+        double x, y;
+        int proj_ret;
+
+        x = -5.2*DEG_TO_RAD;
+        y = 50*DEG_TO_RAD;
+        proj_ret = pj_transform(p_WGS84_proj,
+                                p_OSGB36_proj, 1, 1, &x, &y, NULL );
+        x *= RAD_TO_DEG;
+        y *= RAD_TO_DEG;
+        /*printf("%.18f %.18f\n", x, y); */
+        assert(proj_ret == 0);
+        assert(fabs(x - -5.198965360936369962) < 1e-15);
+        assert(fabs(y - 49.999396034285531698) < 1e-15);
+    }
+
+    return NULL;
+}
+
+int main(int argc, char* argv[])
+{
+    int i;
+    pthread_t tid1, tid2;
+    pthread_attr_t attr1, attr2;
+
+    pthread_attr_init(&attr1);
+    pthread_attr_init(&attr2);
+
+    pthread_create(&tid1, &attr1, thread_main, NULL);
+    pthread_create(&tid2, &attr2, thread_main, NULL);
+    for(i=0;i<2;i++)
+        sleep(1);
+    go_on = 0;
+    return 0;
+}
+
+#endif /* _WIN32 */
\ No newline at end of file

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/proj.git



More information about the Pkg-grass-devel mailing list